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

Java中如何读取文件内容?

发布时间:2023-05-20 06:09:47

在Java中,读取文件内容可以使用以下几种方法:

1. FileInputStream和BufferedInputStream:

 FileInputStream fis = new FileInputStream("filename.txt");

 BufferedInputStream bis = new BufferedInputStream(fis);

 byte[] contents = new byte[1024];

 int bytesRead = 0;

 while ((bytesRead = bis.read(contents)) != -1) {

     System.out.println(new String(contents, 0, bytesRead));

 }

 FileInputStream和BufferedInputStream是InputStream(输入流)的子类,这两个类可以用于读取文件的字节内容。在此过程中,需要创建一个文件输入流和一个缓冲输入流来读取文件内容,并使用一个字节数组缓冲来存储读取的内容。使用read方法来读取数据,每次读取一个指定大小的缓冲区,返回值表示实际读取的字节数,如果返回-1,则表示已经到达文件末尾。

2. FileReader和BufferedReader:

 FileReader fr = new FileReader("filename.txt");

 BufferedReader br = new BufferedReader(fr);

 String line;

 while ((line = br.readLine()) != null) {

     System.out.println(line);

 }

 FileReader和BufferedReader也是读取文件的常用类,这两个类可以读取文件的字符内容。在此过程中,需要创建一个文件读取器和一个缓冲读取器来读取文件内容,并使用readLine方法来读取每一行数据。每次读取一行,在读取到末尾时返回null。

3. Scanner:

 Scanner scanner = new Scanner(new File("filename.txt"));

 while (scanner.hasNextLine()) {

     String line = scanner.nextLine();

     System.out.println(line);

 }

 Scanner是一个Java类库中的类,可以用来读取文件内容。在此过程中,需要创建一个Scanner对象并将文件对象传递给它来读取文件。使用hasNextLine方法来检查是否还有下一行数据,使用nextLine方法来读取每一行数据。

可以看出,以上三种方法均可以实现读取文件内容的功能,但它们之间有些区别。FileInputStream和FileReader可以读取任何类型的文件,而Scanner主要用于文本文件的读取。此外,Scanner比其他两种方法速度慢,但使用起来更方便,因为它可以读取整个文件或按行读取文件。为了提高读取速度,可以使用缓冲类BufferedInputStream和BufferedReader来包装文件输入流和文件读取器。