我想使用單個BufferedReader對象從兩個或多個文件中讀取文本。使用BufferedReader讀取多個文件
這就是我在代碼中做到的。
Charset charset = Charset.forName("UTF-8");
Path p1 = Paths.get("sum1.csv");
List<String> list = new ArrayList<String>();
BufferedReader reader = Files.newBufferedReader(p1, charset);
try {
String line;
while((line = reader.readLine()) != null && !line.isEmpty()){
list.add(line);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
reader.close();
}
Path p2 = Paths.get("sum2.csv");
reader = Files.newBufferedReader(p2, charset);
try {
String line;
while((line = reader.readLine()) != null && !line.isEmpty()){
list.add(line);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
reader.close();
}
代碼編譯並正確運行。
處理這個問題的標準方法是什麼?是否可以使用單個BufferedReader讀取兩個或更多文件?
我有點類似的情況。這只是我sum1 sumN,N是一個非常巨大的數字。我怎樣才能一次讀完所有的文件?我可以做一些像sum *的東西嗎? –
@ tanmay2507:'SequenceInputStream'具有[構造函數,它接受一個'Enumeration'](https://docs.oracle.com/javase/8/docs/api/java/io/SequenceInputStream.html#SequenceInputStream-java.util .Enumeration-)。如果您努力爲此制定解決方案,請打開一個新問題。 – Holger