logo

Rukovanje datotekama u Javi pomoću FileWriter i FileReader

Klase Java FileWriter i FileReader koriste se za pisanje i čitanje podataka iz tekstualnih datoteka (oni su Tok znakova klase). Preporuča se ne da koristite klase FileInputStream i FileOutputStream ako morate čitati i pisati bilo kakve tekstualne informacije jer su to klase bajtova.
 

nadjačavanje metode u Javi

FileWriter
FileWriter je koristan za stvaranje datoteke koja u nju upisuje znakove. 

  • Ova klasa nasljeđuje od klase OutputStream.
  • Konstruktori ove klase pretpostavljaju da su zadano kodiranje znakova i zadana veličina međuspremnika bajtova prihvatljivi. Kako biste sami odredili te vrijednosti, konstruirajte OutputStreamWriter na FileOutputStream. 
     
  • FileWriter je namijenjen pisanju tokova znakova. Za pisanje tokova neobrađenih bajtova razmislite o korištenju FileOutputStream.
  • FileWriter stvara izlaznu datoteku ako već nije prisutna.


Konstruktori:  



    FileWriter(Datoteka datoteke) -Konstruira FileWriter objekt s obzirom na File objekt.FileWriter (Booleov dodatak datoteke datoteke) -konstruira FileWriter objekt s obzirom na File objekt.FileWriter (FileDescriptor fd) -konstruira FileWriter objekt povezan s deskriptorom datoteke.FileWriter (String fileName) -konstruira FileWriter objekt koji ima naziv datoteke.FileWriter (String fileName Boolean append) -Konstruira FileWriter objekt kojemu je dat naziv datoteke s Booleovom oznakom koja označava treba li ili ne dodati zapisane podatke.


Metode:  

    public void write (int c) izbacuje IOException -Piše jedan znak.public void write (char [] stir) izbacuje IOException -Zapisuje niz znakova.public void write(String str)izbacuje IOException -Zapisuje niz.public void write(String str int isključeno int len) izbacuje IOException - Zapisuje dio niza. Ovdje off je pomak od kojeg se počinju pisati znakovi, a len je broj znakova za pisanje.public void flush() izbacuje IOExceptionispire potokpublic void close() izbacuje IOExceptionprvo ispire tok, a zatim zatvara program za pisanje.


Čitanje i pisanje odvija se znak po znak što povećava broj I/O operacija i utječe na performanse sustava. BufferedWriter može se koristiti zajedno s FileWriterom za poboljšanje brzine izvršenja.
Sljedeći program opisuje kako stvoriti tekstualnu datoteku koristeći 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 je koristan za čitanje podataka u obliku znakova iz 'tekstualne' datoteke. 

  • Ova je klasa naslijeđena od klase InputStreamReader.
  • Konstruktori ove klase pretpostavljaju da su zadano kodiranje znakova i zadana veličina međuspremnika bajtova prikladni. Kako biste sami odredili te vrijednosti, konstruirajte InputStreamReader na FileInputStream. 
     
  • FileReader je namijenjen za čitanje tokova znakova. Za čitanje tokova neobrađenih bajtova razmislite o korištenju FileInputStream.


Konstruktori:  

    FileReader (datoteka) -Stvara FileReader s obzirom na datoteku za čitanjeFileReader(FileDescripter fd) -Stvara novi FileReader s obzirom na FileDescripter za čitanjeFileReader(String fileName) -Stvara novi FileReader s nazivom datoteke iz koje se čita


Metode:  

    public int read () izbacuje IOException -Čita jedan znak. Ova metoda će blokirati sve dok znak ne bude dostupan, ne dođe do I/O pogreške ili dok se ne dosegne kraj toka.public int read(char[] cbuff) izbacuje IOException -Čita znakove u niz. Ova će se metoda blokirati dok neki ulaz ne bude dostupan, ne dođe do I/O pogreške ili dok se ne dosegne kraj toka.public abstract int read(char[] buff int off int len) izbacuje IOException -Čita znakove u dio niza. Ova će se metoda blokirati dok neki ulaz ne bude dostupan, ne dođe do I/O pogreške ili dok se ne dosegne kraj toka. 
    Parametri: 
    cbuf - Odredišni međuspremnik 
    isključeno - Pomak na kojem se počinju pohranjivati ​​znakovi 
    len - Maksimalan broj znakova za čitanje 
     public void close() izbacuje IOExceptionzatvara čitač.javno dugo preskakanje(dugo n) izbacuje IOException -Preskače znakove. Ova metoda će blokirati sve dok neki znakovi ne budu dostupni, ne dođe do I/O pogreške ili dok se ne dosegne kraj streama. 
    Parametri: 
    n - Broj znakova za preskakanje 


Sljedeći program opisuje kako čitati iz 'tekstualne' datoteke pomoću FileReadera
 

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

 

Napravi kviz