Подскажите пожалуйста, логика работает так как требуется. Потоки закрывал уже и по отдельности и в ресурсном try, но валидатору все равно что-то не нравится, и не понятно что? Куда рыть не очень понятно.
package com.javarush.task.task18.task1820;
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
/*
Округление чисел
*/
public class Solution {
public static void main(String[] args) throws IOException {
ArrayList<Double> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
String fileName1 = sc.nextLine();
String fileName2 = sc.nextLine();
sc.close();
// String fileName1 = "/Users/emelnikov/Downloads/Java/JavaRush/JavaRushTasks/JavaRushTasks/2.JavaCore/src/com/javarush/task/task18/task1820/1.txt";
// String fileName2 = "/Users/emelnikov/Downloads/Java/JavaRush/JavaRushTasks/JavaRushTasks/2.JavaCore/src/com/javarush/task/task18/task1820/2.txt";
try (FileInputStream fis1 = new FileInputStream(fileName1);
FileOutputStream fos2 = new FileOutputStream(fileName2, true);
Scanner scanner = new Scanner(new File(fileName1))) {
scanner.useDelimiter(" ");
while (scanner.hasNext()) {
double d = Double.parseDouble(scanner.next());
list.add(d);
}
scanner.close();
// System.out.println(list.size());
for (double doub : list) {
// System.out.println(doub);
if (doub > 0) {
if ((doub % 1) >= 0.50) {
doub++;
String str = Integer.toString((int) doub);
fos2.write(str.getBytes());
fos2.write(32);
} else {
String str = Integer.toString((int) doub);
fos2.write(str.getBytes());
fos2.write(32);
}
} else {
if ((doub % 1) * -1 > 0.50) {
// System.out.println(doub);
doub--;
// System.out.println(doub);
String str = Integer.toString((int) doub);
fos2.write(str.getBytes());
} else {
String str = Integer.toString((int) doub);
fos2.write(str.getBytes());
}
fos2.write(32);
}
}
}
}
}