📜  java读取文件中的每一行 - Java(1)

📅  最后修改于: 2023-12-03 14:43:04.859000             🧑  作者: Mango

Java读取文件中的每一行

在Java程序中,经常需要读取文件的内容并逐行处理,本文介绍如何用Java读取文件中的每一行。

1. 读取文本文件

要读取文本文件,可以使用Java的BufferedReader类,它提供了readLine方法用于读取文件中的每一行文本。下面是一个简单的例子:

try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

说明:

  1. BufferedReader包装FileReader后,调用readLine方法读取每一行文本;
  2. 循环读取直到读完整个文件;
  3. try-with-resources语句用于自动关闭文件流;
2. 读取二进制文件

要读取二进制文件,可以使用Java的FileInputStream类,它提供了read方法用于读取文件中的每一个字节。下面是一个简单的例子:

try (FileInputStream fis = new FileInputStream("file.bin")) {
    byte[] buffer = new byte[1024];
    int bytesRead;
    while ((bytesRead = fis.read(buffer)) != -1) {
        for (int i = 0; i < bytesRead; i++) {
            System.out.print(buffer[i] + " ");
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}

说明:

  1. FileInputStream用于读取二进制文件;
  2. 创建一个缓冲区,每次读取1024个字节到缓冲区中;
  3. 循环读取直到读完整个文件,read方法返回-1表示到达文件末尾;
  4. 打印每个字节的值。
3. 读取网络文件

要读取网络文件,可以使用Java的URL类,它提供了一个openStream方法用于打开网络连接。下面是一个简单的例子:

try (BufferedReader br = new BufferedReader(new InputStreamReader(new URL("http://example.com/file.txt").openStream()))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

说明:

  1. URL类用于打开网络连接;
  2. 使用InputStreamReader将输入流转换成字符流;
  3. 循环读取直到读完整个文件;
  4. try-with-resources语句用于自动关闭文件流。
4. 总结

本文介绍了如何用Java读取文件中的每一行,包括读取文本文件、二进制文件和网络文件。读取文本文件可以使用BufferedReader类,读取二进制文件可以使用FileInputStream类,读取网络文件可以使用URL类。为避免文件流未关闭的问题,可以使用try-with-resources语句自动关闭文件流。