如何更新用java修改的打开文件?

如何更新用java修改的打开文件?,java,file,file-handling,Java,File,File Handling,我正在做一个语音到文本的项目,我要做一个文本编辑器,当有人说话时,它会自动输入。我所做的是当有人讲话时,使用 File file = new File("C:\\Users\\User\\Desktop\\voice_type_test.txt"); PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(file, true))); writer.append("Text to be appended.");

我正在做一个语音到文本的项目,我要做一个文本编辑器,当有人说话时,它会自动输入。我所做的是当有人讲话时,使用

File file = new File("C:\\Users\\User\\Desktop\\voice_type_test.txt");
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(file, true)));
writer.append("Text to be appended.");
writer.close();
问题陈述:文件得到了完美的修改,但它不会更新打开的窗口及其内容。这是显而易见的!我想要一种方法,这样它也可以更新open.txt文件。因为每次添加新行时读取文件不是可行的选择

范例

文件内容为:在打开的文本编辑器和硬盘上的文件中

ABCDEFGHIJKLMNO

修改后的文件内容:

在硬盘上

ABCDEFGHIJKLMNO 要追加的文本

屏幕编辑器

ABCDEFGHIJKLMNO

[编辑]


更新:屏幕编辑器/文本编辑器是指任何文本编辑器,无论它是记事本、写字板、Word、Eclipse的代码区等。

另一种解决方案。考虑使用JavaAWT机器人。这将向当前窗口发送带有焦点的输入,因此应该可以处理任何内容

Robot robot = new Robot();
Thread.sleep(1000);
String helloWorld = "Hello world";
for (char c : helloWorld.toCharArray()) {

    if (Character.isUpperCase(c)) {
        robot.keyPress(KeyEvent.VK_SHIFT);
    }
    robot.keyPress(Character.toUpperCase(c));
    robot.keyRelease(Character.toUpperCase(c));

    if (Character.isUpperCase(c)) {
        robot.keyRelease(KeyEvent.VK_SHIFT);
    }
}

什么是屏幕编辑器?你的编辑?您需要创建一个简单的编辑器,或者需要关闭并重新打开该窗口您可以将其视为记事本窗口。@实际上,它适用于任何文本编辑器…无论是记事本、写字板还是eclipse的代码区…只有当编辑器支持检测下划线文件的更改时,这才有效,所以eclipse可能,但不是记事本和写字板…如果您在jframe中显示文本,那么您就不必担心更新文本编辑器了?或者关闭/重新打开该文件。这不会自动更新文本编辑器中的内容,我猜这是主要要求。它只会使屏幕前面的编辑器处于右侧?您能解释一下for each循环中发生了什么吗?目前无法满足更新任何编辑器(包括记事本等)的要求,因此只需提供一个替代选项即可。@sidkamaria它会一个字符一个字符地发送字符串,就像用户在键盘上键入一样。