Как мне кажется, программа выполняет то, чего от нее хочет компилятор. Но, очевидно, что это только я так думаю. Подскажите пожалуйста, в каком направлении двигаться?
package com.javarush.task.task18.task1820;
/*
Считать с консоли 2 имени файла.
Первый файл содержит вещественные(дробные) числа, разделенные пробелом. Например, 3.1415.
Округлить числа до целых и записать через пробел во второй файл.
Закрыть потоки.
Принцип округления:
3.49 => 3
3.50 => 4
3.51 => 4
-3.49 => -3
-3.50 => -3
-3.51 => -4
Требования:
1. Программа должна два раза считать имена файлов с консоли.
2. Для первого файла создай поток для чтения. Для второго - поток для записи.
3. Считать числа из первого файла, округлить их и записать через пробел во второй.
4. Должны соблюдаться принципы округления, указанные в задании.
5. Созданные для файлов потоки должны быть закрыты.
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args)throws Exception {
BufferedReader red = new BufferedReader(new InputStreamReader(System.in));
String fileName1 = red.readLine();
String fileName2 = red.readLine();
FileInputStream fis = new FileInputStream(fileName1);
FileOutputStream fos = new FileOutputStream(fileName2);
ArrayList<Integer> list = new ArrayList<>();
String [] array = null;
String s;
while (fis.available() > 0) {
s = fis.read() + " ";
array = s.split(" ");
for(int i = 0; i < array.length; i++) {
list.add(Math.round(Float.parseFloat(array[i])));
}
}
for(int i = 0; i < list.size(); i++) {
fos.write(list.get(i));
}
red.close();
fis.close();
fos.close();
}
}