中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在Java 中FileReader與FileWriter有哪些區別

發布時間:2020-11-19 16:25:22 來源:億速云 閱讀:188 作者:Leah 欄目:編程語言

在Java 中FileReader與FileWriter有哪些區別?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

FileReader和FileWriter源碼分析

1. FileReader 源碼(基于jdk1.7.40)

  package java.io;
 public class FileReader extends InputStreamReader {
   public FileReader(String fileName) throws FileNotFoundException {
     super(new FileInputStream(fil java io系列21之 InputStreamReader和OutputStreamWritereName));
   }
   public FileReader(File file) throws FileNotFoundException {
     super(new FileInputStream(file));
   }
   public FileReader(FileDescriptor fd) {
     super(new FileInputStream(fd));
   }
 }

從中,我們可以看出FileReader是基于InputStreamReader實現的。

2. FileWriter 源碼(基于jdk1.7.40) 

 package java.io;
 public class FileWriter extends OutputStreamWriter {
   public FileWriter(String fileName) throws IOException {
     super(new FileOutputStream(fileName));
   }
   public FileWriter(String fileName, boolean append) throws IOException {
     super(new FileOutputStream(fileName, append));
   }
   public FileWriter(File file) throws IOException {
     super(new FileOutputStream(file));
   }
   public FileWriter(File file, boolean append) throws IOException {
     super(new FileOutputStream(file, append));
   }
   public FileWriter(FileDescriptor fd) {
     super(new FileOutputStream(fd));
   }
 } 

從中,我們可以看出FileWriter是基于OutputStreamWriter實現的。

示例程序 

import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.FileWriter;;
 import java.io.FileReader;
 import java.io.IOException;
 /**
  * FileReader 和 FileWriter 測試程序
 *
 * 
 */
 public class FileReaderWriterTest {
   private static final String FileName = "file.txt";
   private static final String CharsetName = "utf-8";
   public static void main(String[] args) {
     testWrite();
     testRead();
   }
   /**
   * OutputStreamWriter 演示函數
   *
   */
   private static void testWrite() {
     try {
       // 創建文件“file.txt”對應File對象
       File file = new File(FileName);
       // 創建FileOutputStream對應FileWriter:將字節流轉換為字符流,即寫入out的數據會自動由字節轉換為字符。
       FileWriter out = new FileWriter(file);
      // 寫入10個漢字
       out1.write("字節流轉為字符流示例");
      // 向“文件中”寫入"0123456789"+換行符
      out1.write("0123456789\n");
      out1.close();
     } catch(IOException e) {
       e.printStackTrace();
     }
   }
   /**
   * InputStreamReader 演示程序
   */
   private static void testRead() {
     try {
      // 方法1:新建FileInputStream對象
       // 新建文件“file.txt”對應File對象
       File file = new File(FileName);
       FileReader in1 = new FileReader(file);
       // 測試read(),從中讀取一個字符
      char c1 = (char)in1.read();
       System.out.println("c1="+c1);
       // 測試skip(long byteCount),跳過4個字符
       in1.skip(6);
       // 測試read(char[] cbuf, int off, int len)
       char[] buf = new char[10];
       in1.read(buf, 0, buf.length);
       System.out.println("buf="+(new String(buf)));
       in.close();
     } catch(IOException e) {
       e.printStackTrace();
     }
   }
 }

運行結果:

c1=字
buf=流示例0123456

看完上述內容,你們掌握在Java 中FileReader與FileWriter有哪些區別的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉树县| 贡嘎县| 琼中| 义乌市| 逊克县| 四平市| 商河县| 和林格尔县| 石柱| 安乡县| 南和县| 潮州市| 七台河市| 隆回县| 迭部县| 江都市| 会昌县| 禄丰县| 墨脱县| 台南市| 安远县| 安阳市| 南丹县| 刚察县| 宣汉县| 铜川市| 辰溪县| 沂水县| 阿鲁科尔沁旗| 修武县| 吴江市| 道真| 蓬安县| 佛冈县| 邳州市| 文化| 孝感市| 高青县| 香港| 马山县| 乐亭县|