程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAVA細分IO包輸入輸出流類差別

JAVA細分IO包輸入輸出流類差別

編輯:關於JAVA

FILE文件源處理類

  FileReader 是讀入文本字符文件數據源的類接口。此類管道內包含字節流InputStream管道接口.

  FileInputStream 可以讀入文本字符文件數據源,也可以讀入ASCII碼等非文本文件數據源的類接口。

  結論:字符流是在字節流基礎上的處理流。那麼,字節流功能更廣泛。字符流無法正確處理例如ASCII的文件數據源。

  另外如果都處理文本文件源,如何選擇這2個類,使用何種類比較好?就要具體看你實現什麼樣的功能,分析它們各自不同的方法來決定了。也許一樣,也許不同。各自處理的速度和內存使用情況,就要使用一些優化軟件來具體分析了。例如:簡單軟件OptemizeIt, 或Jprobe功能更強的程序優化軟件

  --------測試FileReader類,閱讀可執行ASCII文件--------------

  import Java.io.*;

  public class TestFileReader{

  public static void main(String[] args)throws IOException{

  String st = "appletvIEwer.exe";

  File f = new File(st);

  FileReader freader = new FileReader(f);

  FileWriter fwriter = new FileWriter("new"+f.getName());

  int in = -1;

  int flag = 0;

  in = (char)freader.read();

  flag++;

  System.out.println("my first char reading is :--"+(char)in);

  // fwriter.write(in);

  while(in!=-1){

  fwriter.write(in);

  in = freader.read();

  flag++;

  System.out.println("my loop char reading is:--"+(char)in);

  }

  System.out.println("the reading flag is:--"+flag);

  fwriter.flush();

  fwriter.close();

  freader.close();

  }

  }

  --------測試FileInputStream類,閱讀可執行ASCII文件--------------

  import Java.io.*;

  public class TestFileInputStream{

  public static void main(String[] args)throws IOException{

  String st = "appletvIEwer.exe";

  File f = new File(st);

  FileInputStream fin = new FileInputStream(f);

  FileOutputStream fout = new FileOutputStream("new"+f.getName());

  int in = -1;

  int flag = 0;

  in = fin.read();

  flag++;

  System.out.println("my first byte reading is:--"+(char)in);

  while(in!=-1){

  fout.write(in);

  in = fin.read();

  flag++;

  System.out.println("my loop byte reading is:--"+(char)in);

  }

  fout.flush();

  fin.close();

  fout.close();

  System.out.println("the reading flag is:--"+flag);

  }

  }

  結果:FileReader類,讀入ASCII可執行文件,然後復制,無法還原此文件,無法運行。

  FineInputStream類,讀入ASCII可執行文件,然後復制,可以還原此文件,可運行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved