这个问题可以通过使用InputStreamReader和BufferedInputStream来解决。以下是一个示例代码:
import java.io.BufferedReader;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
try {
FileInputStream fileInputStream = new FileInputStream("file.txt");
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
InputStreamReader inputStreamReader = new InputStreamReader(bufferedInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们使用了FileInputStream来读取文件,并将其包装在BufferedInputStream中来提高性能。然后,我们使用InputStreamReader将字节流转换为字符流,并将其包装在BufferedReader中以便使用readLine()方法按行读取文件内容。这种方式可以避免read()方法太慢的问题,并且readLine()方法返回的字符串中会包含换行符或回车符。