mrserfr
33 уровень
Киев

FileReader

Статья из группы Архив info.javarush
Добрый день! Объясните, пожалуйста, метод действия FileReader'a. Он читает целиком строку, а потом переходит на следующую? Или по символам? В этом коде: BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedReader fileReader = new BufferedReader(new FileReader(reader.readLine())); ArrayList lines = new ArrayList(); String line; while((line = fileReader.readLine()) != null) { int i = Integer.parseInt(line); lines.add(i); } что именно делают строки: String line; while((line = fileReader.readLine()) != null){}
Комментарии (7)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
mrserfr Уровень 33
5 марта 2015
Собственно, легче всего читать без разбору тупо по байтам — fileInputStream. Выводить соответственно — fileOutputStream


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String sourceFileName = reader.readLine();
        String destinationFileName = reader.readLine();

        java.io.FileInputStream fileInputStream = new java.io.FileInputStream(sourceFileName);
        java.io.FileOutputStream fileOutputStream = new java.io.FileOutputStream(destinationFileName);

        while (fileInputStream.available()>0)
        {
            int data = fileInputStream.read();
            fileOutputStream.write(data);
        }
        fileInputStream.close();
        fileOutputStream.close();
    }
}
mrserfr Уровень 33
21 июля 2014
Еще вопрос возник!!!

Как заставить читать кодировку ютф8, тобишь, кириллицу?

Код:
<code>
public class FileReaderTest
{
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new FileReader("D:\\java\\123.txt"));
        while(reader.ready()){
            String readLine = reader.readLine();
            System.out.println(readLine);
        }
    }
}</code>
Читает файл:
<code>
5677аоцажцуаоцтж
8аьцудщацрьужац
11азцубщао238472ь923гьо
3лаьощ38
2
10
</code>

И выдает:

<code>
5677������������
8��������������
11��������238472�923���
3�����38
2
10

</code>

Как заставить прочитать нормально? Ну не могу в инете найти, хоть убейте. Все всегда нахожу, а тут ступор… И в документации ничего не вижу.
Docktor91 Уровень 40
21 июля 2014
хм…
String line; //переменная для считываемой строки(одной строки)
while((line = fileReader.readLine()) != null)// тут цикл пока может что то считать(not null), попутно присваивая line= fileReader.readLine()