如何用Java的BufferedReader与InputStreamReader读取文件?
问题描述:
下面我有下面的代码来读取一个文件,并逐行通过它..这是使用java的BufferedReader类。我很好。如何用Java的BufferedReader与InputStreamReader读取文件?
String filename = "C:\\test.txt"
String line = null;
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
while (((line = bufferedReader.readLine()) != null)) {
//do the following....
}
} catch (IOException) {
e.printStackTrace();
}
但是我想现在开始在Spring/Java中使用InputStreamReader。我写了下面的代码,但我不确定如何逐行扫描我的文件。真的很困惑这部分。任何人有任何想法或知道如何做到这一点?
String filepath= "C:\\test.txt"
File filename= new File(filepath);
try {
InputStream fileInputStream = new BOMInputStream(new fileInputStream(filename));
// now want to step through the file, line by line..
} catch (IOException) {
e.printStackTrace();
}
感谢
答
这是如何通过使用字节读取InputStreamReader的输入文件字节。
char[] chars = new char[100];
try {
InputStream inputStream = new FileInputStream("C:\\test.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"UTF-8");
inputStreamReader.read(chars);
System.out.println(new String(chars).trim());
} catch (IOException e) {
e.printStackTrace();
}
答
检查了这一点 -
String filename = "C:\\test.txt"
String line = null;
FileInputStream fileInputStream = new FileInputStream(filename);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
try {
while (((line = bufferedReader.readLine()) != null)) {
//do the following....
}
} catch (IOException) {
e.printStackTrace();
}
答
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\test.txt")))) {
reader.lines().forEach(line -> {
// do what you want with the line
});
} catch (IOException e) {
throw new RuntimeException(e);
}
}
任何理由不只是使用'新的InputStreamReader(的FileInputStream)'? – chrylis
[Convert InputStream to BufferedReader]的可能重复(http://stackoverflow.com/questions/5200187/convert-inputstream-to-bufferedreader) – Neil
备注:考虑使用NIO.2 File API。 – Puce