logo

טיפול בקבצים ב-Java באמצעות FileWriter ו-FileReader

מחלקות Java FileWriter ו- FileReader משמשות לכתיבה ולקריאת נתונים מקובצי טקסט (הם זרם תווים שיעורים). זה מומלץ לֹא כדי להשתמש במחלקות FileInputStream ו-FileOutputStream אם עליך לקרוא ולכתוב מידע טקסטואלי כלשהו שכן אלו הן מחלקות זרם Byte.
 

FileWriter
FileWriter שימושי ליצירת קובץ שכותב בו תווים. 

  • מחלקה זו יורשת מהמחלקה OutputStream.
  • הבנאים של מחלקה זו מניחים שקידוד התווים המוגדר כברירת מחדל וגודל ברירת המחדל של מאגר בתים מקובלים. כדי לציין ערכים אלה בעצמך בנו OutputStreamWriter על FileOutputStream. 
     
  • FileWriter מיועד לכתיבת זרמים של תווים. עבור כתיבת זרמים של בתים גולמיים שקול להשתמש ב- FileOutputStream.
  • FileWriter יוצר את קובץ הפלט אם הוא לא קיים כבר.


בונים:  



    FileWriter (קובץ קובץ) -בונה אובייקט FileWriter בהינתן אובייקט File.FileWriter (קובץ קובץ בוליאני תוספת) -בונה אובייקט FileWriter בהינתן אובייקט File.FileWriter (FileDescriptor fd) -בונה אובייקט FileWriter המשויך לתיאור קובץ.FileWriter (String fileName) -בונה אובייקט FileWriter שקיבל שם קובץ.FileWriter (מחרוזת fileName Boolean add) -בונה אובייקט 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 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.


בונים:  

    FileReader (קובץ קובץ) -יוצר FileReader שניתן לקרוא ממנו את הקובץFileReader(FileDescripter fd) -יוצר FileReader חדש שניתן לקרוא ממנו את FileDescripterFileReader(String fileName) -יוצר FileReader חדש עם שם הקובץ שממנו יש לקרוא


שיטות:  

    public int read () זורק את IOException -קורא דמות אחת. שיטה זו תחסום עד שתו זמין מתרחשת שגיאת I/O או שמגיעים לסוף הזרם.public int read(char[] cbuff) זורק את IOException -קורא תווים לתוך מערך. שיטה זו תחסום עד שתהיה קלט זמין. מתרחשת שגיאת קלט/פלט או שמגיעים לסוף הזרם.public abstract int read(char[] buff int off int len) זורק את IOException -קורא תווים לחלק ממערך. שיטה זו תחסום עד שתהיה קלט זמין. מתרחשת שגיאת קלט/פלט או שמגיעים לסוף הזרם. 
    פרמטרים: 
    cbuf - מאגר יעד 
    כבוי - היסט שבו מתחילים לאחסן תווים 
    len - מספר תווים מקסימלי לקריאה 
     public void close() זורק את IOExceptionסוגר את הקורא.דילוג ארוך ציבורי(לונג n) זורק את IOException -מדלג על דמויות. שיטה זו תחסום עד שחלק מהתווים יהיו זמינים. מתרחשת שגיאת קלט/פלט או שמגיעים לסוף הזרם. 
    פרמטרים: 
    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();  } } 

 

צור חידון