У меня всего два вопроса:
1 - Почему в листинге 1 - int b1 = inputStream1.available() РАВЕН НУЛЮ?
2 - Почему валидатор принял неправильное решение как ВЕРНОЕ? Файл тупо перезатерся другим файлом.(см. листинг 2)
Листинг 1
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
File file1 = new File(reader.readLine());
File file2 = new File(reader.readLine());
FileInputStream inputStream1 = new FileInputStream(file1);
FileInputStream inputStream2 = new FileInputStream(file2);
FileOutputStream outputStream1 = new FileOutputStream(file1);
FileOutputStream outputStream2 = new FileOutputStream(file1, true);
ArrayList<Integer> list = new ArrayList<Integer>(100);
int b1 = inputStream1.available();
int b2 = inputStream2.available();
while (inputStream1.available() > 0){
list.add(inputStream1.read());
}
while (inputStream2.available() > 0){
outputStream1.write(inputStream2.read());
}
for (Integer integer : list) {
outputStream2.write(integer);
}
outputStream1.close();
outputStream2.close();
inputStream1.close();
inputStream2.close();
Листинг 2
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
File file1 = new File(reader.readLine());
File file2 = new File(reader.readLine());
FileInputStream inputStream1 = new FileInputStream(file1);
FileInputStream inputStream2 = new FileInputStream(file2);
FileOutputStream outputStream1 = new FileOutputStream(file1);
// FileOutputStream outputStream2 = new FileOutputStream(file1, true);
ArrayList<Integer> list = new ArrayList<Integer>(100);
int b1 = inputStream1.available();
int b2 = inputStream2.available();
while (inputStream1.available() > 0){
list.add(inputStream1.read());
}
while (inputStream2.available() > 0){
outputStream1.write(inputStream2.read());
}
for (Integer integer : list) {
outputStream1.write(integer);
}
outputStream1.close();
// outputStream2.close();
inputStream1.close();
inputStream2.close();