logo

Работа с файлове в Java с помощта на FileWriter и FileReader

Класовете Java FileWriter и FileReader се използват за запис и четене на данни от текстови файлове (те са Поток от знаци класове). Препоръчва се не за да използвате класовете FileInputStream и FileOutputStream, ако трябва да четете и пишете текстова информация, тъй като това са класове на байтов поток.
 

FileWriter
FileWriter е полезен за създаване на файл, записващ знаци в него. 

  • Този клас наследява от класа OutputStream.
  • Конструкторите на този клас приемат, че кодирането на знаци по подразбиране и размерът на байтовия буфер по подразбиране са приемливи. За да укажете сами тези стойности, конструирайте OutputStreamWriter на FileOutputStream. 
     
  • FileWriter е предназначен за писане на потоци от знаци. За запис на потоци от необработени байтове помислете за използването на FileOutputStream.
  • FileWriter създава изходния файл, ако вече не е наличен.


Конструктори:  



сравним интерфейс в java
    FileWriter (Файлов файл) -Конструира обект FileWriter, даден обект File.FileWriter (Файл файл булево добавяне) -конструира обект FileWriter, даден обект File.FileWriter (FileDescriptor fd) -конструира FileWriter обект, свързан с файлов дескриптор.FileWriter (String fileName) -конструира обект FileWriter с име на файл.FileWriter (String fileName Boolean append) -Конструира обект FileWriter, на който е дадено име на файл с булево значение, указващо дали да се добавят или не записаните данни.


Методи:  

    public void write (int c) хвърля IOException -Пише един знак.public void write (char [] stir) хвърля IOException -Записва масив от знаци.public void write(String str)хвърля IOException -Пише низ.public void write(String str int изключено int len) хвърля IOException - Записва част от низ. Тук off е отместването, от което да започнете писането на знаци, а len е броят на знаците за писане.public void flush() хвърля IOExceptionпромива потокаpublic void close() хвърля IOExceptionпърво промива потока и след това затваря писателя.


Четенето и писането се извършват символ по знак, което увеличава броя на I/O операциите и влияе върху производителността на системата. BufferedWriter може да се използва заедно с FileWriter за подобряване на скоростта на изпълнение.
Следващата програма описва как да създадете текстов файл с помощта на 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 е полезен за четене на данни под формата на знаци от „текстов“ файл. 

  • Този клас е наследен от класа InputStreamReader.
  • Конструкторите на този клас приемат, че кодирането на знаци по подразбиране и размерът на байтовия буфер по подразбиране са подходящи. За да укажете сами тези стойности, конструирайте InputStreamReader на FileInputStream. 
     
  • FileReader е предназначен за четене на потоци от знаци. За четене на потоци от необработени байтове обмислете използването на FileInputStream.


Конструктори:  

csv файл чете java
    FileReader (Файлов файл) -Създава FileReader, даден файл за четенеFileReader(FileDescripter fd) -Създава нов FileReader, даден на FileDescripter за четенеFileReader (низ име на файл) -Създава нов FileReader с името на файла, от който да се чете


Методи:  

    public int read () хвърля IOException -Чете един знак. Този метод ще блокира, докато символът е наличен, възникне I/O грешка или бъде достигнат краят на потока.public int read(char[] cbuff) хвърля IOException -Чете символи в масив. Този метод ще блокира, докато не бъде наличен някакъв вход, възникне I/O грешка или бъде достигнат краят на потока.public abstract int read(char[] buff int off int len) хвърля IOException -Чете знаци в част от масив. Този метод ще блокира, докато не бъде наличен някакъв вход, възникне I/O грешка или бъде достигнат краят на потока. 
    Параметри: 
    cbuf - Буфер за местоназначение 
    off - Отместване, при което да започнете да съхранявате знаци 
    len - Максимален брой знаци за четене 
     public void close() хвърля IOExceptionзатваря четеца.public long skip(long n) хвърля IOException -Пропуска знаци. Този метод ще блокира, докато някои знаци не са налични, възникне I/O грешка или бъде достигнат краят на потока. 
    Параметри: 
    n - Броят знаци за пропускане 


Следващата програма описва как да четете от „текстовия“ файл с помощта на 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();  } } 

 

Създаване на тест