您好,欢迎来一对一服务网! [请登录]  [免费注册]
咨询电话:400-008-1115
JAVA细分IO包输入输出流类差别
http://www.otoworld.cn 2010年6月17日 11:29:50

         [导读]FileReader 是读入文本字符文件数据源的类接口。此类管道内包含字节流InputStream管道接口。
  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可执行文件,然后复制,可以还原此文件,可运行。
 

本信息真实性未经本站证实,仅供参考。资料来源于互联网,如果损害到您的利益请联系我们处理。
s