2
import java.io.*;
class demo
{
public static void main(String args[])
{
    PrintWriter pw=new PrintWriter(System.out);
    pw.println("java");
    //pw.print("java");
}
}

// 出力はjavausingpw.printlnですが、出力は null usingです。pw.printつまり、使用中にコンソールに何も出力されませんprint

4

4 に答える 4

6

ほとんどの場合、バッファリングだけです。フラッシュしていないため、出力が得られません。ドキュメントから:

PrintStream クラスとは異なり、自動フラッシュが有効になっている場合、改行文字が出力されるたびにではなく、println、printf、または format メソッドのいずれかが呼び出されたときにのみ行われます。これらのメソッドは、改行文字ではなく、プラットフォーム独自の行区切りの概念を使用します。

試す:

pw.flush();

コードの最後に。

于 2011-10-05T13:23:34.843 に答える
6

代わりにこれを試してください:

PrintWriter pw=new PrintWriter(System.out);
pw.print("java");
pw.flush();

PrintWriter内部バッファリングを行い、printlnメソッドはそれを自動的にフラッシュします。

于 2011-10-05T13:23:40.650 に答える
1

自動フラッシュの場合、このコンストラクターを使用できます

PrintWriter(OutputStream out, boolean autoFlush);
于 2011-10-05T13:24:44.990 に答える
0

への呼び出しはprintln()暗黙的に出力バッファーをフラッシュしますが、への呼び出しではフラッシュしprint()ません。を使用print()してから呼び出してくださいpw.flush()

書き込み呼び出しの後に自動的にフラッシュするオプションを含む PrintWriter のコンストラクターがあることにも注意してください。

于 2011-10-05T13:24:41.317 に答える