Почему такой код при втором открытии bufferedreader выдаёт ошибку?
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
         OutputStream out = new FileOutputStream(reader.readLine())) {
    save(out);
}
try (BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
     FileInputStream fos = new FileInputStream(r.readLine())) {
    load(fos);
} catch (IOException e) {
    e.printStackTrace();
}
в таком соответственно всё нормально:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try (OutputStream out = new FileOutputStream(reader.readLine())) {
    save(out);
}
try (FileInputStream fos = new FileInputStream(reader.readLine())) {
    load(fos);
} catch (IOException e) {
    e.printStackTrace();
}