Доброго времени суток!
Подскажите, пожалуйста, что я не так делаю?
программа выбрасывает исключение после запуска и ввода путей к файлам:
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
at java.io.BufferedInputStream.read(BufferedInputStream.java:336)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at com.javarush.task.task17.task1721.Solution.getFilePath(Solution.java:47)
at com.javarush.task.task17.task1721.Solution.main(Solution.java:24)
java.io.FileNotFoundException: C:\Users\vlady\OneDrive\Desktop\java\1.txt (Синтаксическая ошибка в имени файла, имени папки или метке тома)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
at com.javarush.task.task17.task1721.Solution.readDataAndAddToList(Solution.java:55)
at com.javarush.task.task17.task1721.Solution.main(Solution.java:25)
Process finished with exit code 0
package com.javarush.task.task17.task1721;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Транзакционность
*/
public class Solution {
public static List<String> allLines = new ArrayList<String>();
public static List<String> forRemoveLines = new ArrayList<String>();
public static void main(String[] args) {
Solution solution = new Solution();
try {
solution.readDataAndAddToList(allLines);
solution.readDataAndAddToList(forRemoveLines);
solution.joinData();
} catch (IOException e) {
e.printStackTrace();
}
}
public void readDataAndAddToList(List<String> list) throws IOException {
String fileName = null;
try (InputStreamReader inputStreamReader = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(inputStreamReader)
) {
fileName = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
try(FileInputStream fileInputStream = new FileInputStream(fileName);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader reader = new BufferedReader(inputStreamReader)){
while (true) {
String s = reader.readLine();
if (s == null)
break;
else
list.add(s);
}
}
}
public void joinData() throws CorruptedDataException {
if (allLines.containsAll(forRemoveLines))
allLines.removeAll(forRemoveLines);
else {
allLines.clear();
throw new CorruptedDataException();
}
}
}