Nel mio servlet ho dato sia out.print
e out.write
. ma entrambe le stampe nel browser.Qual è la differenza esatta tra out.write() e out.print()
Qual è la differenza esatta tra questi due e quando utilizzare out.print
e out.write
?
Nel mio servlet ho dato sia out.print
e out.write
. ma entrambe le stampe nel browser.Qual è la differenza esatta tra out.write() e out.print()
Qual è la differenza esatta tra questi due e quando utilizzare out.print
e out.write
?
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.
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.
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
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);
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().
implementazioneQuindi dove vanno a finire i dati scritti? –
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
s' PrintWriter
comunica la differenza meglio di javadoc
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
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.
ho semplicemente conoscono come in questo modo:
out.println()
è il metodo di javax.servlet.jsp.JspWriter
out.write()
è il metodo di java.io.Writer
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()
eout.write()
. Entrambi sono utilizzati per scrivere la versioneString
dell'oggetto specificato nel buffer di JspWriter.
Tuttavia, JspWriter.print()
è in grado di prendere molti tipi di argomenti di Writer.write()
.
JspWriter.print()
Writer.write()
Qual è il tipo di 'esterno ne? Cosa dicono i documenti? – Dukeling