Deo zbornika Učimo Javu
Nataloženi tokovi (buffered streams)
Klase BufferedInputStream
i BufferedOutputStream
omogućuju čitanje i pisanje tako što se tokovi podataka prvo natalože u taložnik ili bafer (buffer), koji je zapravo niz bajtova. Program tada čita podatke sve dok ih ima u baferu. Podaci ulaze i izlaze iz bafera u blokovima.
Proces pri kojem se bafer puni podacima se naziva taloženje (baferovanje).
Konstruktori
Sa stanovišta programera, jedina razlika između običnih i taloženih tokova je u konstruktorima:
public BufferedInputStream(InputStream in)
public BufferedInputStream(InputStream in, int size)
public BufferedOutputStream(OutputStream out)
public BufferedOutputStream(OutputStream out, int size)
Parametar size
je broj bajtova u taložniku (baferu). Ako nije naveden, podrazumijeva se 512.
Veličina bafera
Optimalna veličina bafera ovisi o platformi i općenito je povezana sa veličinom bloka na disku, barem za datotečne tokove. Manje od 512 će vjerojatno biti premalo, a više od 4096 previše. Idealno bi bilo da veličina taložnika bude višekratnik veličine bloka diska. Za nepouzdane mrežne konekcije bolje je odabrati manju veličinu taložnika. Na primjer:
URL u = new URL("http://java.developer.com");
BufferedInputStream bis = new BufferedInputStream(u.openStream(), 256);
Izvor: Elliotte Rusty Harold, Java Lecture Notes, priredio Damjan Pavlica.