Reading multiple files using BufferedReader
bufferedreader, io, java
Solution
Charset charset = Charset.forName("UTF-8");
List<String> list = new ArrayList<String>();
try(
FileInputStream is1=new FileInputStream("sum1.csv");
FileInputStream is2=new FileInputStream("sum2.csv");
SequenceInputStream is=new SequenceInputStream(is1, is2);
BufferedReader reader=new BufferedReader(new InputStreamReader(is, charset));)
{
try {
String line;
while((line = reader.readLine()) != null && !line.isEmpty()){
list.add(line);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
}
}
By the way, did you mean
String line;
while((line = reader.readLine()) != null)
if(!line.isEmpty()) list.add(line);
for your inner loop? Your code stops at the first empty line, my suggested alternative skips empty lines. But I can only guess your real intention.
Problem
I want to read texts from two or more files using a single BufferedReader object. This is how I did it in my code. ``` 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(); } ``` The code compiled and run correctly. What is the standard way to deal with this problem? Is it possible to read two or more files using a single BufferedReader?