2013-08-20 5 views

risposta

8

PrintWriter:

pubblico void write (String s)

Scrivi una stringa. Questo metodo non può essere ereditato dalla classe Writer perché deve eliminare le eccezioni I/O.

metodo di stampa ha un livello più alto di astrazione.

stampa public void (String s)

Stampa una stringa. Se l'argomento è nullo, la stringa "null" è stampata. In caso contrario, i caratteri della stringa vengono convertiti in byte in base alla codifica dei caratteri predefinita della piattaforma e questi byte sono scritti esattamente nel modo del metodo write (int).

Spero che questo aiuti.

1

La variabile nel tuo caso è più probabile si riferisce ad un PrintWriter

Basta confrontare la descrizione di scrittura ...

public void write(String s)

scrivere una stringa. Questo metodo non può essere ereditato dalla classe Writer perché deve sopprimere le eccezioni I/O.

... con la descrizione di println ...

public void println(String x)

Stampa una stringa e poi terminare la linea. Questo metodo si comporta come se invochi print (String) e quindi println().

... e stampare ...

public void print(String s)

Stampa una stringa. Se l'argomento è nullo, viene stampata la stringa "null". In caso contrario, i caratteri della stringa vengono convertiti in byte in base alla codifica dei caratteri predefinita della piattaforma e questi byte vengono scritti esattamente nel modo del metodo write (int).

Nel complesso, direi che i metodi di stampa funzionano su un livello più alto di astrazione ed è quello con cui preferisco lavorare durante la scrittura di servlet.

10

La differenza fondamentale è che out.write() esplode se si passa un null:

String s = null; 
out.print(s); // outputs the text "null" 
out.write(s); // NullPointerException 
-2

out.write (-) vs out.print (-)

più Una differenza è out.write (-) metodo basta scrivere dati o oggetto per browser come un file. Non è possibile scrivere alcuna istruzione come out.write (10 * 20); ma lo facciamo con out.print (10 * 20);

0

metodo write() scrive solo caratteri in streaming (o console) ma non stampa, mentre il metodo print() lo scrive e lo stampa su streaming (o console).

System.out.write(97); 
System.out.print('j'); 

prima dichiarazione scrive carattere 97 vale a dire 'a' su console, ma non stampa, mentre le seconde stampe istruzione 'A' che è scritto già in esercizio e 'j', che è passato nel metodo di stampa().

implementazione
+0

Quindi dove vanno a finire i dati scritti? –

+1

Rimane in streaming fino a quando il flusso non scorre, dopo che lo scarico dei dati del flusso verrà stampato sulla console. Il metodo print() svuota i dati precedenti e stampa i dati passati. – DHARMRAJSINGH

1

s' PrintWriter comunica la differenza meglio di javadoc

public void print(String s) { 
    if (s == null) { 
     s = "null"; 
    } 
    write(s); 
} 
1

Ci sono tre grande differenza:

1) Se si tenta di stampare un valore nullo di una stringa con out.write (), Lanciare NullPointerException mentre out.print() stampa semplicemente NULL come stringa.

String name = null; 
out.write(name); // NullPointerException 
out.print(name); // 'Null' as text will be printed 

2) out.print() possibile stampare i valori booleani ma out.write() non ci riesce.

boolean b = true; 
out.write(b); // Compilation error 
out.print(b); // 'true' will be printed 

3) Se si utilizza out.write(), semplicemente non è possibile inserire il codice operazione aritmetica ma out.print() fornisce il supporto.

out.write(10+20); // No output will be displayed. 
out.print(10+20); // Output '30' will be displayed. 
1

ho semplicemente conoscono come in questo modo:

out.println() è il metodo di javax.​servlet.​jsp.​JspWriter

out.write() è il metodo di java.io.Writer

1

prima cosa è non è possibile utilizzare javax.​servlet.​jsp.​JspWriter out in un servlet. Deve essere utilizzato in un file .jsp, perché out è una variabile locale del metodo nel metodo _jspService(...) del file .jsp.

Non c'è alcuna differenza nello scopo di utilizzare out.print() e out.write(). Entrambi sono utilizzati per scrivere la versione String dell'oggetto specificato nel buffer di JspWriter.

Tuttavia, JspWriter.print() è in grado di prendere molti tipi di argomenti di Writer.write().

JspWriter.print()

  • oggetto
  • String
  • booleana
  • char
  • char []
  • doppia
  • galleggiante
  • int
  • lungo

Writer.write()

  • String
  • char
  • int