Как записать в файл синхронно с помощью Java? - PullRequest
0 голосов
/ 08 января 2019

Я только начал изучать Java, и меня интересовали библиотеки файлов. Поэтому я сохранил открытый файл блокнота под названием filename.txt. Теперь я хочу записать в файл, используя Java, но я хочу получить результат в режиме реального времени.

Т.е. при выполнении кода Java изменения должны быть видны в текстовом файле без закрытия и повторного открытия файла.

Вот мой код:

import java.io.*;
class Locker
{
    File check = new File("filename.txt");
    File rename = new File("filename.txt");
    public void checker()
    {
        try{
            FileWriter chk = new FileWriter("filename.txt");
            if(check.exists())
            {
                System.out.println("File Exists");
                chk.write("I have written Something in the file, hooray");
                chk.close();
            }
        }
            catch(Exception e)
            {
            }
        }

};
class start
{
    public static void main(String[] args) 
    {
        Locker l = new Locker();
        l.checker();
    }
}

Возможно ли это, и если да, может кто-нибудь сказать мне, как?

1 Ответ

0 голосов
/ 08 января 2019

Простой ответ: это не зависит от стороны Java.

Когда ваш FileWriter закончит запись и закроется, содержимое этого файла в вашей файловой системе будет обновлено. Если по какой-то причине этого не произошло, то при запуске этого кода вы должны получить какую-то форму IOException.

Вопрос о том, что ваш редактор , который вы используете для просмотра файла, понимает, что файл изменился ... полностью зависит от вашего редактора.

Некоторые редакторы будут игнорировать изменения, другие редакторы сообщат вам «файл изменен, вы хотите перезагрузить его или проигнорировать изменения».

Значение: код, который вы показываете, "синхронно" записывает этот файл, ничего не поделаешь со стороны java.

Другими словами: попробуйте использовать другие редакторы, вероятно, предназначенные для редактирования исходного кода, например Atom, Slickedit, Visual Studio, ...

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