Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java实时写入打开时的文件_Java_File_Runtime_Real Time_Outputstream - Fatal编程技术网

Java实时写入打开时的文件

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(); } 当前时间类

我想在文件打开时将数据写入文件,但它不起作用。Calendar getTime运行良好,System.out.println证明了这一点。拜托,有什么想法吗,怎么了

主要类别:

 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:是的,这是不可能的。