2013-12-21 9 views
7

Gibt es einen Unterschied bei der Verwendung dieser beiden? Wann würdest du eins über dem anderen benutzen?System.out.println vs PrintWriter

System.out.println(result); 

ODER

PrintWriter out = new PrintWriter(System.out); 
    out.println(result); 
    out.flush(); 
+0

Einer ist ein PringStream und der andere ist ein PrintWriter. PrintStreams kann mehr Flexibilität bei der Codierung ermöglichen. Ich vermute, dass einige Systemcodierungen verwendet werden, aber ich bin mir nicht sicher. –

+2

'System.out' ist ein [PrintStream] (http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html) und' PrintWriter' ist ... ein [PrintWriter] (http://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html) –

Antwort

7

Der Unterschied besteht darin, dass System.out ein PrintStream ist und das andere ist ein PrintWriter. PrintStream sollte einen Strom von Bytes schreiben, während PrintWriter einen Strom von Zeichen schreiben sollte (und so behandelt es Zeichencodierungen usw.). Für die meisten Anwendungsfälle gibt es keinen Unterschied.

4

System.out ist Instanz von PrintStream

So verengt sich Ihre Frage zu PrintStream unten vs PrintWriter

  • Alle von einem PrintStream gedruckte Zeichen umwandeln in Bytes mit der Standardzeichencodierung der Plattform (Syso schreibt direkt an Systemausgabe/Konsole aus)

  • Die Klasse PrintWriter sollte in Situationen verwendet werden, in denen Zeichen statt Byte geschrieben werden müssen.

  • einige der Forschung vor der Veröffentlichung Fragen auf

    SO
0

Ja, es gibt einen kleinen Unterschied. out.println() ist kurz und wird in JSP verwendet, während PrintWriter in Servlets verwendet wird. out.println() wird ebenfalls von PrintWriter abgeleitet.

Verwandte Themen