logo

Bestandsverwerking in Java met behulp van FileWriter en FileReader

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:  



    FileWriter(Bestandsbestand) -Construeert een FileWriter-object op basis van een File-object.FileWriter (Bestandsbestand boolean toevoegen) -bouwt een FileWriter-object op basis van een File-object.FileWriter (FileDescriptorfd) -bouwt een FileWriter-object dat is gekoppeld aan een bestandsdescriptor.FileWriter (String bestandsnaam) -bouwt een FileWriter-object met een bestandsnaam.FileWriter (String bestandsnaam Booleaanse toevoeging) -Construeert een FileWriter-object met een bestandsnaam en een Booleaanse waarde die aangeeft of de geschreven gegevens wel of niet moeten worden toegevoegd.


Methoden:  

    public void write (int c) gooit IOException -Schrijft één teken.public void write (char [] roer) gooit IOException -Schrijft een reeks tekens.public void write(String str)throws IOException -Schrijft een tekenreeks.public void write(String str int uit int len) gooit IOException - Schrijft een gedeelte van een string. Hier is de offset vanaf waar moet worden begonnen met het schrijven van tekens en len is het aantal tekens dat moet worden geschreven.public void flush() genereert IOExceptionspoelt de stroom doorpublic void close() genereert IOExceptionspoelt eerst de stream door en sluit vervolgens de schrijver.


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
 

Java
// 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. 

  • 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.


Constructeurs:  

    FileReader(Bestandsbestand) -Creëert een FileReader op basis van het bestand waaruit moet worden gelezenFileReader(FileDescripter fd) -Creëert een nieuwe FileReader met de FileDescripter waaruit kan worden gelezenFileReader(String bestandsnaam) -Creëert een nieuwe FileReader met de naam van het bestand waaruit moet worden gelezen


Methoden:  

    public int read () gooit IOException -Leest een enkel teken. Deze methode blokkeert totdat een teken beschikbaar is, er een I/O-fout optreedt of het einde van de stream wordt bereikt.public int read(char[] cbuff) gooit IOException -Leest tekens in een array. Deze methode blokkeert totdat er invoer beschikbaar is, er een I/O-fout optreedt of het einde van de stream is bereikt.public abstract int read(char[] buff int off int len) gooit IOException -Leest tekens in een deel van een array. Deze methode blokkeert totdat er invoer beschikbaar is, er een I/O-fout optreedt of het einde van de stream is bereikt. 
    Parameters: 
    cbuf - Bestemmingsbuffer 
    off - Offset waar tekens moeten worden opgeslagen 
    len - Maximaal aantal te lezen tekens 
     public void close() genereert IOExceptionsluit de lezer.openbare lange skip(lange n) gooit IOException -Slaat tekens over. Deze methode blokkeert totdat er tekens beschikbaar zijn, er een I/O-fout optreedt of het einde van de stream wordt bereikt. 
    Parameters: 
    n - Het aantal tekens dat moet worden overgeslagen 


Het volgende programma laat zien hoe u met FileReader uit het ‘tekst’-bestand kunt lezen
 

Java
// 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