logo

Filhantering i Java med FileWriter och FileReader

Java FileWriter- och FileReader-klasserna används för att skriva och läsa data från textfiler (de är Karaktärsström klasser). Det rekommenderas inte att använda klasserna FileInputStream och FileOutputStream om du måste läsa och skriva all textinformation eftersom dessa är Byte-strömklasser.
 

FileWriter
FileWriter är användbart för att skapa en fil som skriver tecken in i den. 

  • Den här klassen ärver från klassen OutputStream.
  • Konstruktörerna för denna klass antar att standardteckenkodningen och standardbytebuffertstorleken är acceptabla. För att specificera dessa värden själv konstruera en OutputStreamWriter på en FileOutputStream. 
     
  • FileWriter är avsedd för att skriva strömmar av tecken. För att skriva strömmar av råbytes, överväg att använda en FileOutputStream.
  • FileWriter skapar utdatafilen om den inte redan finns.


Konstruktörer:  



    FileWriter (filfil) -Konstruerar ett FileWriter-objekt givet ett File-objekt.FileWriter (fil fil boolesk tillägg) -konstruerar ett FileWriter-objekt givet ett File-objekt.FileWriter (FileDescriptor fd) -konstruerar ett FileWriter-objekt som är associerat med en filbeskrivning.FileWriter (String fileName) -konstruerar ett FileWriter-objekt med ett filnamn.FileWriter (String fileName Boolean tillägg) -Konstruerar ett FileWriter-objekt som har fått ett filnamn med ett booleskt värde som indikerar om skrivna data ska läggas till eller inte.


Metoder:  

    public void write (int c) kastar IOException -Skriver ett enda tecken.public void write (char [] stir) kastar IOException -Skriver en rad tecken.public void write(String str) kastar IOException -Skriver en sträng.public void write(String str int av int len) kastar IOException - Skriver en del av en sträng. Här förskjuts off för att börja skriva tecken och len är antalet tecken att skriva.public void flush() kastar IOExceptionspolar strömmenpublic void close() kastar IOExceptionspolar strömmen först och stänger sedan skrivaren.


Läsning och skrivning sker tecken för tecken vilket ökar antalet I/O-operationer och påverkar systemets prestanda. BufferedWriter kan användas tillsammans med FileWriter för att förbättra exekveringshastigheten.
Följande program visar hur man skapar en textfil med 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();  } }  

FileReader

FileReader är användbar för att läsa data i form av tecken från en "text"-fil. 

  • Denna klass ärvdes från klassen InputStreamReader.
  • Konstruktörerna för denna klass antar att standardteckenkodningen och standardbytebuffertstorleken är lämpliga. För att specificera dessa värden själv konstruera en InputStreamReader på en FileInputStream. 
     
  • FileReader är avsedd för att läsa strömmar av tecken. För att läsa strömmar av råbyte, överväg att använda en FileInputStream.


Konstruktörer:  

    FileReader (filfil) -Skapar en filläsare som får filen att läsa frånFileReader(FileDescripter fd) -Skapar en ny FileReader som får FileDescripter att läsa frånFileReader(String filnamn) -Skapar en ny FileReader med namnet på filen att läsa från


Metoder:  

    public int read () kastar IOException -Läser ett enda tecken. Denna metod kommer att blockera tills ett tecken är tillgängligt ett I/O-fel inträffar eller slutet av strömmen nås.public int read(char[] cbuff) kastar IOException -Läser tecken i en array. Denna metod kommer att blockera tills någon ingång är tillgänglig ett I/O-fel inträffar eller slutet av strömmen nås.public abstract int read(char[] buff int off int len) kastar IOException -Läser tecken i en del av en array. Denna metod kommer att blockera tills någon ingång är tillgänglig ett I/O-fel inträffar eller slutet av strömmen nås. 
    Parametrar: 
    cbuf - Destinationsbuffert 
    off - Offset för att börja lagra tecken 
    len - Maximalt antal tecken att läsa 
     public void close() kastar IOExceptionstänger läsaren.public long skip(long n) kastar IOException -Hoppa över tecken. Denna metod kommer att blockera tills några tecken är tillgängliga, ett I/O-fel inträffar eller slutet av strömmen nås. 
    Parametrar: 
    n - Antalet tecken att hoppa över 


Följande program visar hur man läser från "text"-filen med FileReader
 

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

 

Skapa frågesport