0

印刷ライターを使用してJavaファイルを作成して書き込もうとしています。Javaでファイルを作成して書き込むにはどうすればよいですか
? ファイルに書き込めません。ファイルは作成されますが、テキストはありません。 ありがとう

static void createFile() throws FileNotFoundException{
    String filename = "nothign.txt";
    FileOutputStream connection1;
    connection1 = new FileOutputStream( filename );
    PrintWriter printnothing = null;

    printnothing = new PrintWriter(connection1);
    printnothing.printf("/nnewline writesomething/n exo");
    printnothing.println("trying to write something");
}// createFile Method
4

3 に答える 3

4

内容をファイルにフラッシュするには、PrintWriter を閉じる必要があると思います。これをコードの最後に追加してみてください:

printnothing.close();
于 2013-08-17T01:43:32.643 に答える
0

フラッシュする必要があります。

  1. trueコンストラクターの 2 番目のパラメーターとして指定すると、自動的にフラッシュできます。
  2. を呼び出して手動でフラッシュできますflush()
  3. でストリームを閉じることにより、暗黙的にフラッシュできます.close()

ファイルが解放されるように、ストリームを閉じる必要もあります。

  1. 完了したら、明示的に .close() を呼び出すことで実行できます。
  2. 次の構文を使用して、Java 7 の try-with-resource 機能を利用できます。

例:

try (PrintWriter printnothing = new PrintWriter(new FileOutputStream("nothign.txt"))) {
     printnothing.printf("stuff"); 
     printnothing.println("stuff");
} catch(IOException e) { 
     e.printStacktrace(); // We don't have to close it here, and neither do have to in a finally block - it's handled for us 
}
于 2013-08-17T01:45:29.163 に答える
0

どちらかを呼び出す必要がありますprintnothig.close()(そのオブジェクトを使用して再度印刷することはないと仮定すると、これを行う必要があります) またはprintnothing.flush()

于 2013-08-17T01:45:42.733 に答える