I can't tell where I am getting it wrong. I have tried maybe 20 different ways to read, convert, and write the values. Please help.
package com.codegym.task.task18.task1820;
/*
Rounding numbers
*/
import java.io.*;
import java.lang.Math;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String filename1 = reader.readLine();
String filename2 = reader.readLine();
reader.close();
try(FileOutputStream outputStream = new FileOutputStream(filename2, true);
FileInputStream inputStream = new FileInputStream(filename1)) {
ArrayList<String> vals = new ArrayList<>();
Scanner sc = new Scanner(filename1).useDelimiter(" ");
while (sc.hasNext()){
vals.add(sc.next());
}
try {
int d = (int)Math.round(Double.parseDouble(vals.get(0)));
outputStream.write(String.valueOf(d).getBytes());
} catch (NumberFormatException e) {
outputStream.write(vals.get(0).getBytes());
}
for (int i = 1; i < vals.size(); i++) {
try {
int d = (int)Math.round(Double.parseDouble(vals.get(i)));
outputStream.write((" " + String.valueOf(d)).getBytes());
} catch (NumberFormatException e) {
outputStream.write((" " + vals.get(i)).getBytes());
}
}
outputStream.close();
inputStream.close();
}
}
}