Java: FileReader и FileWriter не работают вместе - PullRequest
0 голосов
/ 13 сентября 2018

Итак, я пытаюсь создать программу, которая может писать и затем читать тот же текстовый файл, используя только FileWriter и FileReader, но по какой-то причине, когда я помещаю оба этих класса в один и тот же код, FileWriter работает правильно , но FileReader - нет, и я получаю пустой вывод.

import java.io.*;
import java.util.Scanner;
public class ex2 {
    public static void main(String[] args) {
        File file = new File("C:\\a.txt");
        Scanner scanner = new Scanner(System.in);
        try {
            FileReader reader = new FileReader(file);
            FileWriter writer = new FileWriter(file);
            writer.write(scanner.nextLine());
            int ch;
            while ((ch = reader.read()) != -1) {
                System.out.println((char)ch);
            }
            scanner.close();
            reader.close();
            writer.close();
        } catch (Exception e) {

        }

    }
}

Это код, о котором я говорю. Я могу написать что-нибудь в .txt, но читатель, похоже, не в состоянии что-то прочитать. Странная часть, если я использую точно такой же код, но без частей для записи файла, FileReader работает нормально, как и должно. Что я делаю неправильно? Заранее спасибо!

1 Ответ

0 голосов
/ 13 сентября 2018

FileWriter объекты буферизируются.Это означает, что они не напишут все, что вы им дадите, как только вы позвоните write.Они будут ждать, пока у них будет определенная сумма, чтобы написать, а затем напишут все сразу.Просто добавьте эту строку:

writer.flush();

между вашим письмом и вашим чтением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...