Qual è lo scopo di flush () nei flussi Java?


In Java, il metodo flush() viene utilizzato nei flussi. Ma non capisco quale sia lo scopo di usare questo metodo?

fin.flush();

Dimmi alcuni suggerimenti.

Author: karn, 2010-02-26

6 answers

Dal documenti del metodo flush:

Svuota il flusso di output e forza la scrittura di tutti i byte di output bufferizzati. Il contratto generale di flush è che chiamarlo è un'indicazione che, se qualsiasi byte precedentemente scritto è stato bufferizzato dall'implementazione del flusso di output, tali byte dovrebbero essere immediatamente scritti nella destinazione prevista.

Il buffering è fatto principalmente per migliorare le prestazioni di I/O. Più su questo può essere letto da questo articolo: Ottimizzazione delle prestazioni di I/O Java .

 78
Author: codaddict, 2016-07-12 11:49:18

Quando diamo qualsiasi comando ,i flussi di quel comando vengono memorizzati nella posizione di memoria chiamata buffer(una posizione di memoria temporanea) nel nostro computer.quando tutta la posizione di memoria temporanea è piena, usiamo flush () che svuota tutti i flussi di dati e li esegue completamente e dà un nuovo spazio ai nuovi flussi nella posizione temporanea del buffer - Spero che capirete

 22
Author: user3004437, 2013-11-18 11:10:21

Quando si scrivono dati in un flusso, non vengono scritti immediatamente e vengono bufferizzati. Quindi usa flush () quando devi essere sicuro che tutti i tuoi dati dal buffer siano scritti.

Dobbiamo essere sicuri che tutte le scritture siano completate prima di chiudere il flusso, ed è per questo che flush() viene chiamato in close () di file/buffered writer.

Ma se hai un requisito che tutte le tue scritture vengano salvate in qualsiasi momento prima di chiudere il flusso, usa flush ()

 16
Author: Biman Tripathy, 2016-12-29 09:55:28

Se il buffer è pieno, tutte le stringhe che è buffered su di esso, saranno salvati sul disco. Buffer viene utilizzato per evitare da grandi offerte! e in testa.

Nella classe BufferedWriter che viene inserita nelle librerie java, esiste una riga come:

private static int defaultCharBufferSize = 8192;

Se si desidera inviare dati prima che il buffer sia pieno, si ha il controllo. Buttalo e basta. Chiamate a writer.flush () dì: "invia tutto ciò che è nel buffer, ora!

Libro di riferimento: https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208

Pagine:453

 3
Author: Semih Okan Pehlivan, 2016-09-21 09:03:24

I flussi

Sono spesso accessibili da thread che svuotano periodicamente il loro contenuto e, ad esempio, lo visualizzano sullo schermo, lo inviano a un socket o lo scrivono in un file. Questo viene fatto per motivi di prestazioni. Lo svuotamento di un flusso di output significa che si desidera interrompere, attendere che il contenuto del flusso venga completamente trasferito alla destinazione, quindi riprendere l'esecuzione con il flusso vuoto e il contenuto inviato.

 2
Author: Silvio Donnini, 2010-02-26 07:45:09

Per problemi di prestazioni, i primi dati devono essere scritti nel buffer. Quando il buffer si riempie, i dati vengono scritti in output (file, console ecc.). Quando il buffer è parzialmente riempito e si desidera inviarlo all'output(file,console), è necessario chiamare manualmente il metodo flush() per scrivere il buffer parzialmente riempito sull'output(file, console).

 2
Author: vijaya kumar, 2015-04-04 15:56:52