Значения в файле
3.49123 54 3.501321 3.512 -46 -3.492 -3.501 -3.51 22 -123.513412312312 3.50 -3.50 3.1415
Значеня на выходе
3 54 4 4 -46 -3 -4 -4 22 -124 4 -3 3
Упростил не много код, но все равно ни в какую
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream fileInputStream = new FileInputStream(reader.readLine());//"D:\\SQL and JAVA\\JAVA\\txtFiles\\First.txt"
FileOutputStream fileOutputStream = new FileOutputStream(reader.readLine());//"D:\\SQL and JAVA\\JAVA\\txtFiles\\Second.txt"
BufferedReader readerForFile = new BufferedReader(new InputStreamReader(fileInputStream));
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
String numberString; //строковая переменная для хранения считывания числа
while ((numberString = readerForFile.readLine()) != null) {
for (int i = 0; i < numberString.length(); i++) { // в этом цикле ищу цифру и добавляю ее в лист
if (numberString.substring(i, i + 1).equals(" ")) {
String s = numberString.substring(0, i);
bufferedWriter.write( Math.round(Double.parseDouble(s)) + " ");
numberString = numberString.substring(i + 1); // удаляем цифру которую только что добавили
i = 0;//обнуляем счетчик
}
}
}
fileInputStream.close();
reader.close();
readerForFile.close();
bufferedWriter.close();
fileOutputStream.close();
}
}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 {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream fileInputStream = new FileInputStream(reader.readLine());//"D:\\SQL and JAVA\\JAVA\\txtFiles\\First.txt"
FileOutputStream fileOutputStream = new FileOutputStream(reader.readLine());//"D:\\SQL and JAVA\\JAVA\\txtFiles\\Second.txt"
BufferedReader readerForFile = new BufferedReader(new InputStreamReader(fileInputStream));
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
List<String> listOfNumberMain = new ArrayList<>();
String numberString; //строковая переменная для хранения считывания числа
while ((numberString = readerForFile.readLine()) != null) {
for (int i = 0; i < numberString.length(); i++) { // в этом цикле ищу цифру и добавляю ее в лист
if (numberString.substring(i, i + 1).equals(" ")) {
String s = numberString.substring(0, i);
listOfNumberMain.add(s);
numberString = numberString.substring(i + 1); // удаляем цифру которую только что добавили
i = 0;//обнуляем счетчик
}
}
}
for(String i : listOfNumberMain){
try{
bufferedWriter.write(Integer.parseInt(i) + " ");
}catch (NumberFormatException e){
double numberDouble = Double.parseDouble(i);
int numberInt = (int) Math.round(numberDouble);
bufferedWriter.write(numberInt + " ");
}
}
fileInputStream.close();
reader.close();
readerForFile.close();
bufferedWriter.close();
fileOutputStream.close();
}
}
/*List<Integer> listOfNumber = new ArrayList<>();
List<String> listOfNumberMain = new ArrayList<>(); // лист для хранения цифр считанных с файла
String numberString; //строковая переменная для хранения считывания числа
String numberAfterDotString = null; // строковая переменная для числа после точки
//считываем файл и записываем значения в listOfNumberMain
while ((numberString = readerForFile.readLine()) != null) {
for (int i = 0; i < numberString.length(); i++) { // в этом цикле ищу цифру и добавляю ее в лист
if (numberString.substring(i, i + 1).equals(" ")) {
String s = numberString.substring(0, i);
listOfNumberMain.add(s);
numberString = numberString.substring(i + 1); // удаляем цифру которую только что добавили
i = 0;//обнуляем счетчик
}
}
}
for(int j = 0; j < listOfNumberMain.size(); j++) {
try { // пробуем записать целое число, если кидаем Exception значит число с точкой
listOfNumber.add(Integer.parseInt(listOfNumberMain.get(j)));
} catch (NumberFormatException e) { // кинул Exception
for (int i = 0; i < listOfNumberMain.get(j).length(); i++) { //в цикле вычисляем первые две цифры после точки
if (listOfNumberMain.get(j).substring(i, i + 1).equals(".")) {
numberAfterDotString = listOfNumberMain.get(j).substring(i+1);//listOfNumberMain.get(j).substring(i + 1, i + 2) + listOfNumberMain.get(j).substring(i + 2, i + 3); //складываем цифры
}
}
int numberAfterDot = Integer.parseInt(numberAfterDotString);// парсим в число
float numberFloat = Float.parseFloat(listOfNumberMain.get(j)); //получаем считанное число
if (numberFloat > 0) { //если число больше 0
if (numberAfterDot < 5000000000000000) {
listOfNumber.add((int) numberFloat);
} else {
listOfNumber.add((int) ++numberFloat);
}
} else if (numberAfterDot <= 5000000000000000) { // если число меньше 0 тут другие условия см.пример
listOfNumber.add((int) numberFloat);
} else {
listOfNumber.add((int) --numberFloat);
}
}
}
for(Integer i : listOfNumber){ // считываем с листа и запиываем все в файл через запятую
bufferedWriter.write(i.toString() + " ");
}*/