package com.javarush.task.task18.task1820;
/*
Округление чисел
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args)throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream input = new FileInputStream(reader.readLine());
FileOutputStream output = new FileOutputStream (reader.readLine());
ArrayList<Integer> array = new ArrayList<>();
ArrayList<String> array2 = new ArrayList<>();
while(input.available()>0)
{
array.add(input.read()) ;
}
String c = "";
for(int i =0; i<array.size(); i++) {
if(array.get(i).equals(32))
{
array2.add(c);
c="";
}
if(!array.get(i).equals(32)) {
c = c + String.valueOf(Character.toChars(array.get(i)));}
if (i==array.size()-1) { array2.add(c); }
}
for(int i =0; i<array2.size(); i++)
{
output.write(Math.round(Float.parseFloat(array2.get(i))));
System.out.println(Math.round(Float.parseFloat(array2.get(i))));
}
System.out.println();
input.close();
output.close();
}
}
Входные данные:
3.49 3.50 3.51 -3.49 -3.50 -3.51
Вывод в консоль(для теста):
3
4
4
-3
-3
-4
Однако, при попытке записи в файл в самом файле вижу следующее: ýýü
Кодировку менял - не лечит.
Подскажите, пожалуйста, в чем проблема. ilya
35 уровень
Сбитая кодировка
Решен
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Эрик Айткулов
11 декабря 2017, 13:39
Ctrl + Alt + S
![]()

0
Сергеев ВикторMaster
11 декабря 2017, 13:19
где меняли кодировку и на какую?
0
ilya
12 декабря 2017, 00:33
UTF-8, так же, как на скрине сверху.
ошибка следующая:
![]()
ошибка следующая:

0
Сергеев ВикторMaster
12 декабря 2017, 01:28
Ошибка тут:
а не в кодировке.
Метод Math.round(float f) имеет сигнатуру int round(float a), т.е. возвращает int.
В тоже время FileOutputStream.write(int b) описан :
Writes the specified byte to this file output stream. - Записывает в потом байт под номером b.
Т.е. в файл вы пишите не числа как таковые, а символы, которые находятся на позиции числа (которые вы пытаетесь записать) в кодировке UTF-8
+3
ilya
12 декабря 2017, 01:43
Исправил, решил через FileWriter.
Однако, теперь у валидатора загоны очередные, код такой.
Прошли все пункты, кроме "Программа должна два раза считать имена файлов с консоли."
Неадекватная предъява.
По факту - все работает.
0
Roman Pryshchepa Java Developer Expert
12 декабря 2017, 08:29
Перепиши считывание имен файлов через строковые переменные.
0
ilya
12 декабря 2017, 09:00
Я правильно понял ?
Результат такой же.
"Программа должна два раза считать имена файлов с консоли."
0
Roman Pryshchepa Java Developer Expert
12 декабря 2017, 09:07решение
Да, у меня вот так принял (считывание имен файлов идет подряд):
особенности работы валидатора.
+2
ilya
12 декабря 2017, 09:22
Тонкой душевной организации он у Вас сущность.
И на том спасибо!
0