Java FileWriter- en FileReader-klassen worden gebruikt om gegevens uit tekstbestanden te schrijven en te lezen (ze zijn Karakterstroom klassen). Het wordt aanbevolen niet om de klassen FileInputStream en FileOutputStream te gebruiken als u tekstuele informatie moet lezen en schrijven, aangezien dit Bytestream-klassen zijn.
Bestandsschrijver
FileWriter is handig om een bestand te maken waarin tekens worden geschreven.
- Deze klasse erft van de klasse OutputStream.
- De constructors van deze klasse gaan ervan uit dat de standaard tekencodering en de standaard byte-buffergrootte acceptabel zijn. Om deze waarden zelf op te geven, bouwt u een OutputStreamWriter op een FileOutputStream.
- FileWriter is bedoeld voor het schrijven van karakterstromen. Overweeg het gebruik van een FileOutputStream voor het schrijven van stromen onbewerkte bytes.
- FileWriter maakt het uitvoerbestand als dit nog niet aanwezig is.
Constructeurs:
- Deze klasse is overgenomen van de klasse InputStreamReader.
- De constructors van deze klasse gaan ervan uit dat de standaard tekencodering en de standaard byte-buffergrootte geschikt zijn. Om deze waarden zelf op te geven, bouwt u een InputStreamReader op een FileInputStream.
- FileReader is bedoeld voor het lezen van karakterstromen. Overweeg het gebruik van een FileInputStream voor het lezen van streams van onbewerkte bytes.
Methoden:
Lezen en schrijven gebeurt karakter voor karakter, waardoor het aantal I/O-bewerkingen toeneemt en de prestaties van het systeem worden beïnvloed. Gebufferde schrijver kan samen met FileWriter worden gebruikt om de uitvoeringssnelheid te verbeteren.
Het volgende programma laat zien hoe u een tekstbestand maakt met FileWriter
// Creating a text File using FileWriter import java.io.FileWriter; import java.io.IOException; class CreateFile { public static void main(String[] args) throws IOException { // Accept a string String str = 'File Handling in Java using '+ ' FileWriter and FileReader'; // attach a file to FileWriter FileWriter fw=new FileWriter('output.txt'); // read character wise from string and write // into FileWriter for (int i = 0; i < str.length(); i++) fw.write(str.charAt(i)); System.out.println('Writing successful'); //close the file fw.close(); } }
Bestandslezer
FileReader is handig om gegevens in de vorm van tekens uit een ‘tekst’-bestand te lezen.
Constructeurs:
Methoden:
Parameters:
cbuf - Bestemmingsbuffer
off - Offset waar tekens moeten worden opgeslagen
len - Maximaal aantal te lezen tekens
Parameters:
n - Het aantal tekens dat moet worden overgeslagen
Het volgende programma laat zien hoe u met FileReader uit het ‘tekst’-bestand kunt lezen
// Reading data from a file using FileReader import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; class ReadFile { public static void main(String[] args) throws IOException { // variable declaration int ch; // check if File exists or not FileReader fr=null; try { fr = new FileReader('text'); } catch (FileNotFoundException fe) { System.out.println('File not found'); } // read from FileReader till the end of file while ((ch=fr.read())!=-1) System.out.print((char)ch); // close the file fr.close(); } }
Quiz maken