logo

Gestion de fichiers en Java à l'aide de FileWriter et FileReader

Les classes Java FileWriter et FileReader sont utilisées pour écrire et lire des données à partir de fichiers texte (elles sont Flux de personnages cours). Il est recommandé pas d'utiliser les classes FileInputStream et FileOutputStream si vous devez lire et écrire des informations textuelles car ce sont des classes de flux d'octets.
 

Écrivain de fichiers
FileWriter est utile pour créer un fichier en y écrivant des caractères. 

dhanashree verma
  • Cette classe hérite de la classe OutputStream.
  • Les constructeurs de cette classe supposent que le codage des caractères par défaut et la taille du tampon d'octets par défaut sont acceptables. Pour spécifier vous-même ces valeurs, construisez un OutputStreamWriter sur un FileOutputStream. 
     
  • FileWriter est destiné à écrire des flux de caractères. Pour écrire des flux d’octets bruts, envisagez d’utiliser un FileOutputStream.
  • FileWriter crée le fichier de sortie s'il n'est pas déjà présent.


Constructeurs :  



    FileWriter(Fichier fichier) -Construit un objet FileWriter à partir d'un objet File.FileWriter (ajout booléen du fichier fichier) -construit un objet FileWriter à partir d'un objet File.FileWriter (FileDescriptor fd) -construit un objet FileWriter associé à un descripteur de fichier.FileWriter (String fileName) -construit un objet FileWriter en fonction d'un nom de fichier.FileWriter (ajout booléen du nom de fichier de chaîne) -Construit un objet FileWriter avec un nom de fichier avec un booléen indiquant s'il faut ou non ajouter les données écrites.


Méthodes :  

    public void write (int c) lance IOException -Écrit un seul caractère.public void write (char [] Stir) lance IOException -Écrit un tableau de caractères.public void write (String str) lance IOException -Écrit une chaîne.public void write(String str int désactivé int len) lance IOException - Écrit une partie d'une chaîne. Ici, off est le décalage à partir duquel commencer à écrire des caractères et len ​​est le nombre de caractères à écrire.public void flush() lance IOExceptionvide le fluxpublic void close() lance IOExceptionvide d'abord le flux, puis ferme l'enregistreur.


La lecture et l'écriture s'effectuent caractère par caractère, ce qui augmente le nombre d'opérations d'E/S et affecte les performances du système. Écrivain tamponné peut être utilisé avec FileWriter pour améliorer la vitesse d’exécution.
Le programme suivant montre comment créer un fichier texte à l'aide de 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();  } }  

Lecteur de fichiers

FileReader est utile pour lire des données sous forme de caractères à partir d'un fichier « texte ». 

  • Cette classe a hérité de la classe InputStreamReader.
  • Les constructeurs de cette classe supposent que le codage des caractères par défaut et la taille du tampon d'octets par défaut sont appropriés. Pour spécifier vous-même ces valeurs, construisez un InputStreamReader sur un FileInputStream. 
     
  • FileReader est destiné à lire des flux de caractères. Pour lire des flux d'octets bruts, envisagez d'utiliser un FileInputStream.


Constructeurs :  

    FileReader (fichier fichier) -Crée un FileReader étant donné le fichier à lireFileReader(FileDescripter fd) -Crée un nouveau FileReader étant donné le FileDescripter à partir duquel lireFileReader (String fileName) -Crée un nouveau FileReader en fonction du nom du fichier à lire


Méthodes :  

    public int read () lance IOException -Lit un seul caractère. Cette méthode bloquera jusqu'à ce qu'un caractère soit disponible, qu'une erreur d'E/S se produise ou que la fin du flux soit atteinte.public int read(char[] cbuff) lance IOException -Lit les caractères dans un tableau. Cette méthode se bloquera jusqu'à ce qu'une entrée soit disponible, qu'une erreur d'E/S se produise ou que la fin du flux soit atteinte.public abstract int read (char[] buff int off int len) lance IOException -Lit les caractères dans une partie d'un tableau. Cette méthode se bloquera jusqu'à ce qu'une entrée soit disponible, qu'une erreur d'E/S se produise ou que la fin du flux soit atteinte. 
    Paramètres : 
    cbuf - Tampon de destination 
    off - Décalage auquel commencer à stocker les caractères 
    len - Nombre maximum de caractères à lire 
     public void close() lance IOExceptionferme le lecteur.public long skip (long n) lance IOException -Saute les caractères. Cette méthode bloquera jusqu'à ce que certains caractères soient disponibles, qu'une erreur d'E/S se produise ou que la fin du flux soit atteinte. 
    Paramètres : 
    n - Le nombre de caractères à ignorer 


Le programme suivant montre comment lire à partir du fichier « texte » à l'aide de FileReader
 

Segmentation fault (core dumped
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();  } } 

 

Créer un quiz