我想在打开文件时将数据写入文件,但它不起作用。 Calendar getTime工作得很好,System.out.println()证明了这一点。请问,任何想法,有什么不对......?
主要课程:
public static void main(String[] args) throws IOException {
// TODO code application logic here
CurrentTime ct = new CurrentTime();
}
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。通过这种方式,我想从任何一方发现这个时刻,这根本不可能吗?
UPDATE :它不再是实际的,只是为了一个注释,那个时候我试图直接对文本编辑器实现某种tailing
操作,现在我明白这有多么不正常想法是......当然必须采用其他方式实施。
答案 0 :(得分:1)
你做错了 - 这是不可能的。 notepad
在运行时绝对忽略它的输入(就像大多数GUI程序一样)。如果要显示文本框并在其中写入文本,只需使用Swing / SWT /...创建一个文本框。
如果您只想写入文件,只需创建一个新的PrintWriter
并使用它来编写文件:http://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html
答案 1 :(得分:1)
有趣:
让我们以简单的方式解决这个问题。
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 ???
写的答案 2 :(得分:0)
你不应该尝试通过记事本写。查看PrintWriter。