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?

Original source

Related problems