logo

Dateiverwaltung in Java mit FileWriter und FileReader

Die Java-Klassen FileWriter und FileReader werden zum Schreiben und Lesen von Daten aus Textdateien verwendet (sie sind es). Charakter-Stream Klassen). Es wird empfohlen nicht um die Klassen FileInputStream und FileOutputStream zu verwenden, wenn Sie Textinformationen lesen und schreiben müssen, da es sich dabei um Byte-Stream-Klassen handelt.
 

FileWriter
FileWriter ist nützlich, um eine Datei zu erstellen, in die Zeichen geschrieben werden. 

  • Diese Klasse erbt von der OutputStream-Klasse.
  • Die Konstruktoren dieser Klasse gehen davon aus, dass die Standardzeichenkodierung und die Standardbytepuffergröße akzeptabel sind. Um diese Werte selbst anzugeben, erstellen Sie einen OutputStreamWriter für einen FileOutputStream. 
     
  • FileWriter ist zum Schreiben von Zeichenströmen gedacht. Zum Schreiben von Streams mit Rohbytes sollten Sie die Verwendung eines FileOutputStream in Betracht ziehen.
  • FileWriter erstellt die Ausgabedatei, falls sie noch nicht vorhanden ist.


Konstrukteure:  



    FileWriter(Dateidatei) -Konstruiert ein FileWriter-Objekt anhand eines File-Objekts.FileWriter (Datei boolean anhängen) -Konstruiert ein FileWriter-Objekt anhand eines File-Objekts.FileWriter (FileDescriptor fd) -Konstruiert ein FileWriter-Objekt, das einem Dateideskriptor zugeordnet ist.FileWriter (String fileName) -Konstruiert ein FileWriter-Objekt mit einem Dateinamen.FileWriter (String fileName Boolean anhängen) -Konstruiert ein FileWriter-Objekt mit einem Dateinamen und einem booleschen Wert, der angibt, ob die geschriebenen Daten angehängt werden sollen oder nicht.


Methoden:  

    public void write (int c) löst eine IOException aus -Schreibt ein einzelnes Zeichen.public void write (char [] stir) löst eine IOException aus -Schreibt ein Array von Zeichen.public void write(String str) löst eine IOException aus -Schreibt eine Zeichenfolge.public void write(String str int aus int len)wirft eine IOException - Schreibt einen Teil einer Zeichenfolge. Hier ist „off“ der Offset, ab dem mit dem Schreiben von Zeichen begonnen werden soll, und „len“ die Anzahl der zu schreibenden Zeichen.public void flush() löst eine IOException ausspült den Streampublic void close() löst eine IOException ausleert zuerst den Stream und schließt dann den Writer.


Das Lesen und Schreiben erfolgt Zeichen für Zeichen, was die Anzahl der I/O-Vorgänge erhöht und sich auf die Leistung des Systems auswirkt. BufferedWriter kann zusammen mit FileWriter verwendet werden, um die Ausführungsgeschwindigkeit zu verbessern.
Das folgende Programm zeigt, wie Sie mit FileWriter eine Textdatei erstellen
 

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();  } }  

FileReader

FileReader ist nützlich, um Daten in Form von Zeichen aus einer „Text“-Datei zu lesen. 

  • Diese Klasse wurde von der InputStreamReader-Klasse geerbt.
  • Die Konstruktoren dieser Klasse gehen davon aus, dass die Standardzeichenkodierung und die Standardbytepuffergröße angemessen sind. Um diese Werte selbst anzugeben, erstellen Sie einen InputStreamReader für einen FileInputStream. 
     
  • FileReader ist zum Lesen von Zeichenströmen gedacht. Zum Lesen von Rohbyte-Streams sollten Sie die Verwendung eines FileInputStream in Betracht ziehen.


Konstrukteure:  

    FileReader(Dateidatei) -Erstellt einen FileReader mit der Datei, aus der gelesen werden sollFileReader(FileDescripter fd) -Erstellt einen neuen FileReader mit dem FileDescripter, aus dem gelesen werden sollFileReader(String fileName) -Erstellt einen neuen FileReader mit dem Namen der Datei, aus der gelesen werden soll


Methoden:  

    public int read() löst eine IOException aus -Liest ein einzelnes Zeichen. Diese Methode blockiert, bis ein Zeichen verfügbar ist, ein E/A-Fehler auftritt oder das Ende des Streams erreicht ist.public int read(char[] cbuff) löst eine IOException aus -Liest Zeichen in ein Array. Diese Methode blockiert, bis Eingaben verfügbar sind, ein E/A-Fehler auftritt oder das Ende des Streams erreicht ist.public abstract int read(char[] buff int off int len) löst eine IOException aus -Liest Zeichen in einen Teil eines Arrays. Diese Methode blockiert, bis Eingaben verfügbar sind, ein E/A-Fehler auftritt oder das Ende des Streams erreicht ist. 
    Parameter: 
    cbuf – Zielpuffer 
    off – Offset, ab dem mit dem Speichern von Zeichen begonnen werden soll 
    len – Maximale Anzahl der zu lesenden Zeichen 
     public void close() löst eine IOException ausschließt den Reader.public long skip(long n) löst eine IOException aus -Überspringt Zeichen. Diese Methode blockiert, bis einige Zeichen verfügbar sind, ein E/A-Fehler auftritt oder das Ende des Streams erreicht ist. 
    Parameter: 
    n – Die Anzahl der zu überspringenden Zeichen 


Das folgende Programm zeigt, wie man mit FileReader aus der „Text“-Datei liest
 

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 erstellen