Java实时写入打开时的文件
我想在文件打开时将数据写入文件,但它不起作用。Calendar getTime运行良好,System.out.println证明了这一点。拜托,有什么想法吗,怎么了 主要类别:Java实时写入打开时的文件,java,file,runtime,real-time,outputstream,Java,File,Runtime,Real Time,Outputstream,我想在文件打开时将数据写入文件,但它不起作用。Calendar getTime运行良好,System.out.println证明了这一点。拜托,有什么想法吗,怎么了 主要类别: public static void main(String[] args) throws IOException { // TODO code application logic here CurrentTime ct = new CurrentTime(); } 当前时间类
public static void main(String[] args) throws IOException {
// TODO code application logic here
CurrentTime ct = new CurrentTime();
}
当前时间类:
public class CurrentTime {
public OutputStream output;
public InputStream input;
public Process npp;
CurrentTime() throws IOException
{
Timer t = new Timer();
npp = Runtime.getRuntime().exec("notepad");
output = npp.getOutputStream();
TimerTask task = new TimerTask() {
@Override
public void run()
{
String dateStr = Calendar.getInstance(new Locale("ua", "UA")).getTime().toString();
System.out.println(dateStr);
try {
output.write(dateStr.getBytes());
output.flush();
} catch (IOException ex) {
Logger.getLogger(CurrentTime.class.getName()).log(Level.SEVERE, null, ex);
}
}
};
t.schedule(task, 1000, 2000);
}
}
也许这个代码是错误的,np。就这样,我想在任何一方发现这一刻,这根本不可能吗
更新:这不再是实际的,但只是为了说明一下,当时我正试图直接对文本编辑器执行某种跟踪操作,现在我明白了这个想法有多么反常。。当然,必须使用完全不同的方式来实现。你不应该试图通过记事本来书写。退房。你做错了——这是不可能的。当记事本像大多数GUI程序一样运行时,它完全忽略了它的输入。如果要显示文本框并在其中写入文本,只需使用Swing/SWT/…创建一个文本框 如果您只想写入文件,只需创建一个新的PrintWriter并使用它来写入文件:有趣的: 让我们用简单的方式来处理这个问题
1. Save a file test.txt somewhere.
2. Open that file and keep it opened
在Java中写入此文件的标准代码
FileWriter fw = new FileWriter(new FileOutputStream(new File("c:/test.txt")));
fw.write("ABC")
现在再次转到记事本文件。我通常使用Textpad,它会通过警报自动刷新,因为我们在您的案例中通过Java在幕后更改了它
我希望这能澄清一点
如果试图超出genric notepad exe,则无法确定将写入哪个文件。我不确定windows是如何处理的,因为您可以同时打开3个不同的文件,而您希望通过java编写数据的文件是哪一个?不起作用。你怎么看它不起作用?你能指定它吗?为什么你认为写记事本的标准输入就会写文件?大多数Windows应用程序甚至不关心它们的stdin/stdout。是的,我可以指定它。启动此程序后,记事本正在打开,但随后它不会输出任何数据,但控制台是。事实上,我无法使其工作,这是一个更好的术语。@user1918648:是的,这是不可能的。