logo

Upravljanje datotek v Javi z uporabo FileWriter in FileReader

Razreda Java FileWriter in FileReader se uporabljata za pisanje in branje podatkov iz besedilnih datotek (so Tok znakov razredi). Priporočljivo je ne da uporabite razreda FileInputStream in FileOutputStream, če morate brati in pisati kakršne koli besedilne informacije, saj sta to razreda bajtnega toka.
 

FileWriter
FileWriter je uporaben za ustvarjanje datoteke, v kateri se zapisujejo znaki. 

  • Ta razred podeduje razred OutputStream.
  • Konstruktorji tega razreda predpostavljajo, da sta privzeto kodiranje znakov in privzeta velikost medpomnilnika bajtov sprejemljivi. Če želite sami določiti te vrednosti, sestavite OutputStreamWriter na FileOutputStream. 
     
  • FileWriter je namenjen pisanju tokov znakov. Za zapisovanje tokov neobdelanih bajtov razmislite o uporabi FileOutputStream.
  • FileWriter ustvari izhodno datoteko, če še ni prisotna.


Konstruktorji:  



    FileWriter (datoteka) -Konstruira objekt FileWriter glede na predmet File.FileWriter (datoteka boolean append) -izdela objekt FileWriter, ki mu je dodeljen predmet File.FileWriter (FileDescriptor fd) -izdela objekt FileWriter, povezan z deskriptorjem datoteke.FileWriter (String fileName) -izdela objekt FileWriter, ki mu je dodeljeno ime datoteke.FileWriter (String fileName Boolean append) -Konstruira objekt FileWriter, ki mu je dodeljeno ime datoteke z logično vrednostjo, ki označuje, ali naj doda zapisane podatke ali ne.


Metode:  

python zapiše json v datoteko
    public void write (int c) vrže IOException -Zapiše en znak.public void write (char [] stir) vrže IOException -Zapiše niz znakov.public void write(String str)vrže IOException -Napiše niz.public void write(String str int izklopljen int len) vrže izjemo IOException - Zapiše del niza. Tu je off odmik, od katerega se začne pisanje znakov, len pa število znakov, ki jih je treba napisati.public void flush() vrže izjemo IOExceptionizpira potokpublic void close() vrže izjemo IOExceptionnajprej izprazni tok in nato zapre pisalnik.


Branje in pisanje potekata znak za znakom, kar poveča število V/I operacij in vpliva na zmogljivost sistema. BufferedWriter se lahko uporablja skupaj z FileWriterjem za izboljšanje hitrosti izvajanja.
Naslednji program prikazuje, kako ustvariti besedilno datoteko s programom 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 uporaben za branje podatkov v obliki znakov iz besedilne datoteke. 

  • Ta razred je podedoval razred InputStreamReader.
  • Konstruktorji tega razreda predpostavljajo, da sta privzeto kodiranje znakov in privzeta velikost medpomnilnika bajtov ustrezna. Če želite sami določiti te vrednosti, sestavite InputStreamReader na FileInputStream. 
     
  • FileReader je namenjen branju tokov znakov. Za branje tokov neobdelanih bajtov razmislite o uporabi FileInputStream.


Konstruktorji:  

    FileReader (datoteka) -Ustvari FileReader glede na datoteko za branjeFileReader(FileDescripter fd) -Ustvari nov FileReader, ki mu je dodeljen FileDescripter za branjeFileReader(String fileName) -Ustvari nov FileReader z imenom datoteke za branje


Metode:  

    public int read () vrže IOException -Bere en znak. Ta metoda bo blokirala, dokler znak ni na voljo, pride do V/I napake ali dokler ni dosežen konec toka.public int read(char[] cbuff) vrže IOException -Prebere znake v matriko. Ta metoda bo blokirana, dokler ni na voljo nekaj vnosa, se pojavi V/I napaka ali dokler ni dosežen konec toka.public abstract int read(char[] buff int off int len) vrže IOException -Prebere znake v del matrike. Ta metoda bo blokirana, dokler ni na voljo nekaj vnosa, se pojavi V/I napaka ali dokler ni dosežen konec toka. 
    Parametri: 
    cbuf – ciljni medpomnilnik 
    izklopljeno - odmik, pri katerem naj se začnejo shranjevati znaki 
    len – največje število znakov za branje 
     public void close() vrže izjemo IOExceptionzapre bralnik.javni dolgi preskok(dolgi n) vrže IOException -Preskoči znake. Ta metoda bo blokirala, dokler ni na voljo nekaj znakov, pride do V/I napake ali dokler ni dosežen konec toka. 
    Parametri: 
    n – število znakov, ki jih je treba preskočiti 


Naslednji program prikazuje, kako brati iz datoteke »besedilo« s programom 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();  } } 

 

Ustvari kviz