Как в таких случаях считывать из файла нормально цифры? Знаю, что код ужасен. Но посоветуйте, пожалуйста, как это сделать правильно.
И еще вопрос почему строчка - System.out.println(list); выводит [null3.12, null45.5, null32.17]; откуда берутся эти null?
package com.javarush.task.task18.task1820;
/*
Округление чисел
*/
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String[] args) throws IOException {
List<String> list = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream fileInputStream = new FileInputStream(reader.readLine());
FileOutputStream fileOutputStream = new FileOutputStream(reader.readLine());
String m = null;
int k = -1;
while (fileInputStream.available()>0){
int p = fileInputStream.read();
if (p == 32 && (k > 48 && k < 58)){
list.add(m);
m = null;
}
else {
m += (char) p;
}
k = p;
}
System.out.println(list);
fileInputStream.close();
for (int i = 0; i < list.size(); i++) {
Long number = Math.round(Double.parseDouble(list.get(i)));
String f = number.toString() + " ";
System.out.println(f);
fileOutputStream.write(f.getBytes());
}
fileOutputStream.close();
}
}