簡體   English   中英

使用Java中的BufferedReader依次讀取不同的文件

[英]Reading different file one after another using BufferedReader in Java

我正在使用BufferedReader來讀取Java中的文件。

以下是代碼段:

String line;
br = new BufferedReader(new FileReader("file1.txt"));
while ((line = br.readLine()) != null) {
    System.out.println(line);
}
//Here I want to open file named "file2.txt".

如上面的代碼片段所述,我現在想打開一個新文件。

最好的方法是什么?

我應該首先使用br.close關閉br,然后再次初始化br還是什么?

PS:我是Java新手。

創建方法將使您的代碼模塊化且易於使用。 這將導致代碼的可重用性和易於理解。 這是示例代碼:

public static void main(String args[]) {
    readFile("C:\\sample.txt");
}

public static void readFile(String filename) {
    BufferedReader br = null;

    try {

        String sCurrentLine;

        br = new BufferedReader(new FileReader(filename));

        while ((sCurrentLine = br.readLine()) != null) {
            System.out.println(sCurrentLine);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (br != null)br.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

我會做一個方法,並兩次調用它

void readFile(String fileName) throws IOException {
     try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
         ...
     }
}

請注意, BufferedReader實例br將自動關閉,並確保為此使用JDK 7

文件I / O操作在內部使用Decorator模式。 因此,最外層對象上的.close()應該關閉所有內部I / O

是的,先關閉它,但是使用此模式...

BufferedReader br = null;
String line;
try {
  br = new BufferedReader(new FileReader("file1.txt"));
  while ((line = br.readLine()) != null) {
      System.out.println(line);
  }
}
finally {
    if (br != null) br.close();
}
//Here I want to open file named "file2.txt".

或者, 嘗試資源的方法(在本質上等同於上述方法)...

String line;
try (BufferedReader br = new BufferedReader(new FileReader("file1.txt")) {
  while ((line = br.readLine()) != null) {
      System.out.println(line);
  }
}
//Here I want to open file named "file2.txt".

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM