Я перебираю строки файлов, которые, как ожидается, будут иметь одинаковое количество строк:
BufferedWriter writer = new BufferedWriter(new FileWriter(new File(outputFile)));
BufferedReader[] brs = new BufferedReader[inputFiles.length];
for (int i = 0; i < inputFiles.length; i++) {
brs[i] = Files.newBufferedReader(Paths.get(inputFiles[i]), StandardCharsets.UTF_8);
}
String[] lines = new String[inputFiles.length];
boolean shouldContinue = true;
while (shouldContinue) {
// read all next lines
for (int i = 0; i < inputFiles.length; i++) {
lines[i] = brs[i].readLine();
if (lines[i] == null) {
shouldContinue = false;
}
}
// sanity check
if (!shouldContinue) {
for (String line : lines) {
if (line != null) {
for (int i = 0; i < inputFiles.length; i++) {
brs[i].close();
}
writer.close();
throw new RuntimeException("All files should contain the same number of lines!");
}
}
break;
}
// processing the lines
}
Однако я получаю следующее предупреждение от Eclipse Mars для строки, генерирующей исключение:
Потенциальная утечка ресурсов: «писатель» не может быть закрыт в этом месте
Я что-то не так делаю?И как это решить?