-3

ファイルを開いたときにデータをファイルに書き込みたいのですが、うまくいきません。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. このように、この瞬間をどこかで発見したいのですが、それは不可能でしょうか?

更新:それはもはや実際のものではありませんが、メモのために、テキストエディターに何らかのtailing操作を直接実装しようとしていたのですが、今ではこのアイデアがいかに異常であったかを理解しています.もちろん、まったく別の方法を使用して実装する必要がありました.

4

3 に答える 3

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を介して)変更したため、自動的に(アラートによって)更新されます。

それが少し明確になることを願っています。

一般的なメモ帳のexeを超過しようとしても、どのファイルに書き込むかは保証されません。一度に3つの異なるファイルを開くことができ、どのファイルにデータがあると予想されるかは、Windowsがどのように処理するかわかりません。 javaを介して書かれました???

于 2012-12-20T12:02:29.720 に答える
1

あなたのやり方は間違っています - それは不可能です。notepad実行中は入力を完全に無視します (ほとんどの GUI プログラムと同様)。テキストボックスを表示してそこにテキストを書きたい場合は、Swing/SWT/... で作成するだけです。

ファイルに書き込みたいだけの場合は、新しいファイルを作成し、PrintWriterそれを使用してファイルを書き込みます: http://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html

于 2012-12-20T11:54:36.110 に答える
0

メモ帳で書き込もうとしてはいけません。PrintWriterをチェックしてください。

于 2012-12-20T11:53:55.960 に答える