如何使用 Java 的 BufferedReader 与 InputStreamReader 读取文件?
Posted
技术标签:
【中文标题】如何使用 Java 的 BufferedReader 与 InputStreamReader 读取文件?【英文标题】:How to read a file with Java's BufferedReader vs InputStreamReader? 【发布时间】:2016-06-21 05:09:25 【问题描述】:下面我有以下代码来读取文件并逐行浏览它。这是使用 java 的 BufferedReader 类。我觉得很好。
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();
谢谢
【问题讨论】:
有什么理由不使用new InputStreamReader(fileInputStream)
?
Convert InputStream to BufferedReader的可能重复
旁注:考虑使用 NIO.2 File API。
【参考方案1】:
这是您可以使用 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();
【讨论】:
【参考方案2】:看看这个 -
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();
【讨论】:
【参考方案3】: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);
【讨论】:
以上是关于如何使用 Java 的 BufferedReader 与 InputStreamReader 读取文件?的主要内容,如果未能解决你的问题,请参考以下文章