Java: BufferedReader ja Writer

Jo aiemmin mainittujen FileReader ja FileWriter ja InputStreamReader ja OutputStreamWriter luokkien lisäksi Javassa on BufferedWriter ja BufferedReader luokat. Aiempiin verrattuna nämä ovat huomattavasti nopeampia, ne pystyvät lukemaan mm. tekstitiedostosta koko rivin kerrallaan readLine() metodin avulla. Luokka säästää paitsi luku- ja kirjoituskertoja niin sen myöden myös muistia ja prosessori aikaa.

BufferedReader kääritään esimerkiksi filereader ja filewriter luokkien päälle.

// luodaan BufferedReader ja BufferedWriter
FileReader input = new FileReader(file);
BufferedReader bufInput = new BufferedReader(input);
			
FileWriter output = new FileWriter(file2);
BufferedWriter bufOutput = new BufferedWriter(output);

Kopioimalla alla olevan koodin ja lisäämällä tekstitiedoston ”buffer.txt” samaan hakemistoon, voit kokeilla ohjelmaa. Se lukee ”buffer.txt” tiedoston rivi kerrallaan ja kirjoittaa rivit ”buffer2.txt” tiedostoon.

/* InputStreamReaderWriter.java. Esimerkki BufferedReader ja BufferedWriter käytöstä.
 * Kristian Virtanen, 2014, kristianvirtanen.wordpress.com
 * Public Domain, eli saa käyttää, muuttaa, kopioida, levittää, kummata ja mitä tahansa.
 */
	 
// tuodaan tarvittavat paketit
import java.io.*;

public class BufferedReaderWriterEsimerkki {
	public static void main(String[] args) {
		String file = "buffer.txt";
		String file2 = "buffer2.txt";
		
		// luodaan BufferedReader ja BufferedWriter
		try {
			FileReader input = new FileReader(file);
			BufferedReader bufInput = new BufferedReader(input);
			
			FileWriter output = new FileWriter(file2);
			BufferedWriter bufOutput = new BufferedWriter(output);
	
			String line;
			
			// käytetään readLine() metodia
			line = bufInput.readLine();
		
			while(line != null) {
				System.out.println(line + ":");
				bufOutput.write(line);
				bufOutput.newLine();
				line = bufInput.readLine();
			}
			bufInput.close();
			bufOutput.close();
		} catch (IOException e) {
			System.out.println(e.toString());
		}
	}
}

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s

WordPress.com.

Ylös ↑