0

我想在输入另一个字符后执行记事本(C:\a.txt)。

这段代码用记事本打开 a.txt 但是当我写“Java”时,我想显示我的控制台 Java。在我写“然后是 Java”之后,我想显示我的控制台 Java,然后是 Java”。

Process process = Runtime.getRuntime().exec("notepad.exe C:\\a.txt");
InputStreamReader read = new InputStreamReader(process.getInputStream());
while(read.read() != -1){
System.out.println(read.read());
}
4

2 回答 2

1

您将无法以Notepad这种方式阅读正在发生的事情。

getInputStream()/getOutputStream允许您对进程的标准输入和输出进行写入读取,但这些流通常与桌面应用程序的用户界面无关。记事本不会将其用户界面中发生的事情与这些流相呼应。

您可以监视文件系统对a.txt的更改,但这假定您在记事本中每次更改后都保存文件。

于 2012-08-22T21:48:02.900 回答
0

如果您想在文件打开时检测更改,您可以使用https://blogs.oracle.com/thejavatutorials/entry/watching_a_directory_for_changes#register然后使用您提供的代码重新读取文件

于 2012-08-22T21:49:23.333 回答