【问题标题】:How to read a file with Java's BufferedReader vs InputStreamReader?如何使用 Java 的 BufferedReader 与 InputStreamReader 读取文件?
【发布时间】:2023-03-04 09:23:01
【问题描述】:

下面我有以下代码来读取文件并逐行浏览它。这是使用 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();
    }

谢谢

【问题讨论】:

标签: java spring inputstream bufferedreader


【解决方案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);
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-04
        • 2021-12-21
        • 1970-01-01
        • 2013-08-02
        • 1970-01-01
        • 1970-01-01
        • 2013-04-12
        • 1970-01-01
        相关资源
        最近更新 更多