Собраты, други, коллеги, товарищи!
По тестам все работает, округляет как в задании. Не могу понять, что не так.
К тому же по двум последним критериям вообще пометка от ментора: "Исключение системы безопасности JavaRush. Вы выполняете потенциально опасную или запрещенную операцию."
package com.javarush.task.task18.task1820;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
/*
Округление чисел
*/
public class Solution {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
String file1 = reader.readLine();
String file2 = reader.readLine();
/* file1 = "d:\\data.txt";
file2 = "d:\\data1.txt";*/
List<Double> list = readDoubles(file1);
StringJoiner rounded = roundAll(list);
writeToFile(rounded, file2);
} catch (IOException e) {
e.printStackTrace();
}
}
private static List<Double> readDoubles(String file1) {
List<Double> list = new ArrayList<>();
try(BufferedReader reader = new BufferedReader(new FileReader(file1))){
while (reader.ready()){
String line = reader.readLine();
String[] doubles = line.split(" ");
for (String d : doubles) {
list.add(Double.parseDouble(d));
}
}
}catch (IOException e){
e.printStackTrace();
}return list;
}
private static StringJoiner roundAll(List<Double> list) {
StringJoiner rounded = new StringJoiner(" ");
for (Double d : list) {
rounded.add(String.valueOf(Math.round(d)));
}return rounded;
}
private static void writeToFile(StringJoiner rounded, String file2) {
try(PrintStream writer = new PrintStream(file2)){
writer.print(rounded);
}catch (IOException e){
e.printStackTrace();
}
}
}