Java中如何读取文件内容?
在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来包装文件输入流和文件读取器。
