Решил громоздко и криво с кучей условий. Но интересно, почему валидатор пишет, что условия не выполняется. Укажите пожалуйста на ошибку, если увидите.
package com.javarush.task.task18.task1820;
import java.io.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
Округление чисел
*/
public class Solution {
public static void main(String[] args) throws IOException{
String nameFile1 = new Scanner(System.in).nextLine();
String nameFile2 = new Scanner(System.in).nextLine();
List<Double> numbersDbl = new ArrayList<>();
List<BigDecimal> nuberInt = new ArrayList<>();
StringBuilder num = new StringBuilder();
try(FileInputStream inputStream = new FileInputStream(nameFile1)){
while(inputStream.available()>0){
int data = inputStream.read();
if((data>47&&data<58)||(data<47&&data>44)){
num.append((char)data);
}
if(data==32){
numbersDbl.add(Double.parseDouble(num.toString()));
num = new StringBuilder();
}
}
}
//D:/1.txt
//D:/2.txt
for (double i : numbersDbl){
BigDecimal numFrmt = new BigDecimal(i);
BigDecimal x = null;
if(i<0){x = numFrmt.setScale(0,BigDecimal.ROUND_HALF_DOWN);}
if(i>0){x = numFrmt.setScale(0,BigDecimal.ROUND_HALF_UP);}
nuberInt.add(x);
}
try(FileOutputStream outputStream = new FileOutputStream(nameFile2)){
for(BigDecimal i : nuberInt){
outputStream.write((i+(" ")).getBytes());
}
}
}
}