欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 中的FileReader和FileWriter源碼分析_動力節(jié)點Java學(xué)院整理

 更新時間:2017年05月18日 09:42:25   投稿:mrr  
本文給大家分享一段示例程序,通過示例代碼可以看出FileReader是基于InputStreamReader實現(xiàn)的,FileWriter是基于OutputStreamWriter實現(xiàn)的,具體程序代碼大家通過本文了解下吧

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實現(xiàn)的。

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實現(xiàn)的。

示例程序 

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 演示函數(shù)
   *
   */
   private static void testWrite() {
     try {
       // 創(chuàng)建文件“file.txt”對應(yīng)File對象
       File file = new File(FileName);
       // 創(chuàng)建FileOutputStream對應(yīng)FileWriter:將字節(jié)流轉(zhuǎn)換為字符流,即寫入out的數(shù)據(jù)會自動由字節(jié)轉(zhuǎn)換為字符。
       FileWriter out = new FileWriter(file);
      // 寫入10個漢字
       out1.write("字節(jié)流轉(zhuǎn)為字符流示例");
      // 向“文件中”寫入"0123456789"+換行符
      out1.write("0123456789\n");
      out1.close();
     } catch(IOException e) {
       e.printStackTrace();
     }
   }
   /**
   * InputStreamReader 演示程序
   */
   private static void testRead() {
     try {
      // 方法1:新建FileInputStream對象
       // 新建文件“file.txt”對應(yīng)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();
     }
   }
 }

運行結(jié)果:

c1=字
buf=流示例0123456

以上所述是小編給大家介紹的Java 中的FileReader和FileWriter源碼分析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論