2015-12-15 15 views

risposta

7

Lettura tramite javadocs Non vedo alcun motivo specifico per cui non viene fornito un metodo writeLine(). Con i metodi write forniti, BufferedWriter bufferizzerà i caratteri prima della scrittura per motivi di efficienza. Fornire un nuovo metodo writeLine() non aggiungerà alcun valore poiché il flusso di caratteri fornito in questo immaginario metodo writeLine verrà memorizzato nel buffer e scritto solo quando il buffer è pieno.

È possibile passare alla classe PrintWriter anziché a BufferedWriter in quanto fornisce il metodo println(String str) che può essere utilizzato per scrivere una stringa e un carattere di fine riga. Ma questo è inefficiente se confrontato con BufferedWriter ed è meglio usarlo solo quando vuoi che il tuo file di output abbia le stringhe scritte immediatamente chiamando il metodo println().

Con classe BufferedWriter per il motivo indicato in here il metodo migliore è utilizzare i metodi write() e newLine().

Per sfruttare i vantaggi di BufferedWriter e di avere accesso a println() metodo, è possibile fare il seguito, come suggerito in javadocs:

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("foo.out"))); 
out.println("Hello World!"); 
+1

Questo non risponde alla domanda. – YoungHobbit

+0

So che devo farlo, ma mi stavo chiedendo perché non esiste un metodo pratico per farlo in una sola chiamata. Altre lingue che conosco come C# hanno questo. –

+0

@ 0ne_Up - Ho cercato e non sono riuscito a trovare un equivalente writeLine() nella classe BufferedStream di C# https://msdn.microsoft.com/en-us/library/system.io.bufferedstream_methods(v=vs.90). aspx. Puoi farmi sapere a quale classe ti stai riferendo? – vk239

Problemi correlati