5

私はしばらく Java で何気なくプログラミングをしてきましたが、基本的なことについてまだいくつかの疑問があります。System.out.println() を使用してデータを表示する必要があると聞いたことがありますが、他の人は別のアイデア (PrintStream など) を提供してくれました。Javaでコンソールに出力する最良の方法は何ですか?

4

9 に答える 9

15

始めたばかりで、いくつかの文字列をコンソールに出力したい場合は、System.out.println()で問題ありません。ファンダメンタルズを理解してから、Java I/Oのより細かい点に飛び込むことができます。

于 2010-07-23T16:31:26.597 に答える
14

System.out PrintStreamです

主な目標がコンソールとの対話である場合は、を見てくださいjava.io.Console。主な目標が何らかのロギングを行うことである場合は、JavaLoggingAPIやlog4jなどのロギングフレームワークを使用してください。

于 2010-07-23T16:31:11.983 に答える
2

System.outは、コンソールへの印刷に適しています。ただし、代わりにjava.util.loggingを使用するように努力する方が、私にとってより良い選択であることがわかりました。(またはいくつかのロギングシステム。)

表示しようとしている情報によって異なります。コンソールのユーザー操作用であれば、System.outは完璧です。デバッグっぽい情報を表示する場合は、必要に応じてログをより詳細に制御できるため、ロギングがおそらく最適な方法です。

(初期設定後、ロギングユーティリティはSystem.outを使用する場合とほぼ同じように透過的です。)

于 2010-07-23T16:35:07.653 に答える
1

種類はあなたがしていることに依存します。ほとんどの場合、JavaロギングAPI(java.util.logging)を使用することをお勧めします。System.out.printlnは、より「デバッグツール」ですが、それでも、JDKのロギングAPIを使用して出力をより詳細に制御できます...

于 2010-07-23T16:32:37.700 に答える
0

log4jを使用し、出力をstdoutに送信します。その後、必要に応じてログファイルに簡単に切り替えることができます。

于 2010-07-23T16:34:06.497 に答える
0

直接使用System.outするのが最も簡単で、通常は最も効率的な方法です。印刷するものがたくさんある場合は、を使用して調査することができますBufferedOutputStream

より効率的に印刷される文字列を作成することによって得られるいくつかの効率があります。多くの連結が行われている場合は、を調べてStringBuilderください。

于 2010-07-23T16:35:03.317 に答える
0

設定できます

System.setOut( new PrintStream( "all-my-sysouts-go-in-this-file.txt" );

そしてsysoytsを行います...

ベアテイルを使用してそれらを追跡できます...

お役に立てれば..

ラジ。

于 2010-07-23T16:54:18.153 に答える
0

はい、コンソールに出力する最も簡単で効率的な方法は、通常、System.out.print() と System.out.println() ですが、送信する出力が大量にある場合は、System.out.println() を使用することもできます。行バッファリングされ、Unicode 処理に関連する多くの作業を行うため、非効率的です。System.out.println() はバッファ サイズが小さいため、バッチ モードで多数の繰り返し出力を処理するのには適していません。各行はすぐにフラッシュされます。その場合、BufferedOutputStream または BufferedWriter を使用することができます。

System.out が常にアプリケーション コンソールまたは端末に送信されるとは限らないことに注意することが重要です。System.out は、アプリケーションの標準出力チャネルを指します。C/C++ では stdout と呼ばれます。これはコンソールに送信される場合がありますが、ユーザーが送信することを決定した場所に送信される場合もあります。たとえば、System.out に出力されるすべてのファイルは、ファイル my-app-output.txt になります。

したがって、通常の出力を送信する場合は、System.out を使用します。エラー メッセージまたはユーザー通知を送信し、コンソールにアクセスする可能性が高い場合は、System.err.print() および System.err.println() を使用します。

1.6 より前のバージョンの Java では、「実際の」コンソールへのチャネルを取得する移植可能な方法はありません。1.6 には、特にコンソールを表すオブジェクト クラス、java.io.Console があります。この一意のオブジェクトへの参照は、静的メソッド console() を使用して System クラスから取得できます。

しかし、あなたの要件がアプリケーション全体をデバッグすることである場合、誰もが言ったように、ロガーを使用することが最善のアプローチです.

于 2010-07-23T18:53:19.117 に答える
0

Java Logging API を使用することをお勧めします

于 2010-07-23T17:08:37.940 に答える