欢迎访问宙启技术站
智能推送

使用Java中的File对象读取文件

发布时间:2023-06-20 04:54:42

File对象是Java中用于操作文件和目录的类,常用于文件的创建、读取、写入、删除等操作。

读取文件是File对象的一个常见用途,常见的文件读取方式包括字符流和字节流两种方式。字符流用于读取文本文件,而字节流则可以读取任何类型的文件。

字符流文件读取

使用字符流读取文件可以方便地读取和处理文本文件,以读取一个文件为例:

import java.io.*;

public class ReadFile {
  public static void main(String[] args) {
    try {
      File file = new File("filename.txt");
      FileReader fr = new FileReader(file);
      BufferedReader br = new BufferedReader(fr);
      String line;

      while ((line = br.readLine()) != null) {
        System.out.println(line);
      }

      br.close();
    } catch (IOException e) {
      System.out.println("Error reading the file");
      e.printStackTrace();
    }
  }
}

首先创建一个File对象,表示要读取的文件,然后使用FileReader创建一个字符流对象,再使用BufferedReader包装该字符流。

此时可以使用readLine()方法逐行读取文件,当读取的行不为空时将其打印出来。

当读取完成后,需要关闭BufferedReader,以释放资源和避免内存泄漏。

字节流文件读取

使用字节流读取文件可以读取任何类型的文件,但需要注意字节流读取的是二进制文件,需要特殊处理读取的内容。同样以读取一个文件为例:

import java.io.*;

public class ReadFile {
  public static void main(String[] args) {
    try {
      File file = new File("filename.txt");
      FileInputStream fis = new FileInputStream(file);
      byte[] content = new byte[(int) file.length()];

      fis.read(content);
      fis.close();

      System.out.println(new String(content));
    } catch (IOException e) {
      System.out.println("Error reading the file");
      e.printStackTrace();
    }
  }
}

首先创建一个File对象,表示要读取的文件,然后使用FileInputStream创建一个字节流对象。

为了读取全部内容,需要创建一个byte数组,长度为文件的大小。使用read()方法将文件内容读取到数组中,最后使用new String()byte数组转换为字符串。

同样地,读取完成后需要关闭FileInputStream

总结

使用Java中的File对象可以方便地读取文件内容,对于文本文件可以使用字符流进行读取,而对于任何类型的文件可以使用字节流进行读取,需要根据实际情况选择合适的读取方式。