• ,

task13.task1318 не принимает валидатор

В консоль выводит содержимое файла как надо, но валидатор не принимает.
В чем ошибка?

package com.javarush.task.task13.task1318;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.io.FileInputStream;

/* 
Чтение файла
*/

public class Solution {
    public static void main(String[] args) throws Exception{
        // напишите тут ваш код
        BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
        String file = rd.readLine();
        FileInputStream fIS = new FileInputStream(file);
        while (fIS.available() > 0 )
            System.out.print((char)fIS.read());
        fIS.close();
        rd.close();
    }
}

8 комментариев

redhat
  • redhat
  • +1
  • Комментарий отредактирован 2017-01-29 05:59:40 пользователем redhat
Вот так все работает и принимает:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String sourceFileName = reader.readLine();
File f = new File(sourceFileName);
BufferedReader fin = new BufferedReader(new FileReader(f));
String line;
while ((line = fin.readLine()) != null)
    System.out.println(line);
reader.close();
fin.close();
velis
Пасиб, то что надо!
zip2004zip
  • zip2004zip
  • 0
  • Комментарий отредактирован 2017-02-26 01:11:12 пользователем zip2004zip
Так в чем причина, почему не принимает такой код как у автора темы? Все же выводит на консоль
И для чего в importe Scanner?
GreenFrog
Добрый день!
Присоединяюсь к вопросу. Я написал код так же как и velis . Не принимает. Код redhat отличается отсутствием приведения типа. Преобразование байтов, т.е. int в char он решает путем создания объекта File и еще одного BufferedReader, что бы из него получить тип String. Кстати если «тупо» вставить код redhat в Идею, она ругается на необъявленный тип данных File.
Считаю, что код velis лаконичнее и в русле пройденного материала.
hubert , млять, обрати на нас внимание!

Примечание: ник админа и аллюзия на экспрессивное выражение использованы исключительно для ускорения привлечения внимания. На самом деле я спокоен и с уважением отношусь к ресурсу javarush и его разработчикам и администраторам.

С уважением,
Зеленая лягушка.
GreenFrog
Разобрался. Код velis принимается валидатором, если перед закрытием потоков вставить строку

System.out.println();


Смысл вставки перевода строки не ясен. :(
Может это условие вставили для «чисто поржать»?

С уважением,
Зеленая лягушка.
exitme
Большое спасибо за сэкономленное время, решал тремя разными методами. Помог только System.out.println()
Marica
У меня кончился бесплатный месяц пользования IDEA, и я вернулась решать задачки в браузере.
у этой задачи код не проходит по требованиям безопасности — тупо не дает считать файл. Все компилируется, но выдает
java.security.AccessControlException:
SecurityManagerProxy.java, method checkRead, line: 118
Исключение системы безопасности JavaRush. Вы выполняете потенциально опасную или запрещенную операцию
это первая, но, думаю, не последняя задача с чтением файлов. И что теперь делать?
velis
Скачать бесплатную версию IDEA — community edition и продолжать решать задачки в ней как и раньше. Для решения задач этого курса вполне хватает возможностей community edition
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.