黑马程序员技术交流社区

标题: Java中各种IO流应该要怎么使用 [打印本页]

作者: 张林敏    时间: 2013-5-5 15:20
标题: Java中各种IO流应该要怎么使用
本帖最后由 张林敏 于 2013-5-6 13:12 编辑

Java中有很多流最基本的有 字符流 、字节流 ,常见的流有:File、InputStream、OutputStream、InputStreamReader、OutputStreamWriter等等等等。


我们在使用这些流时要怎么选择使用这些?有基本的使用方法没,求解?
作者: Jacky_Chen1990    时间: 2013-5-5 15:27
尹桥印 发表于 2013-5-5 15:22
呃,等大神回答。。。

你就是。。。
作者: Jacky_Chen1990    时间: 2013-5-5 15:30
我就说下我的理解吧。

字符流主要用于文本文件的使用。
字节流主要用于媒体文件。

基本使用方法其实都差不多的,除非有特殊的需求。
这是读取文本文件
  1. public static void readFile_2() throws IOException {
  2.                 FileInputStream fis = new FileInputStream("abc.txt");
  3.                
  4.                 byte[] buf = new byte[1024];
  5.                 int len = 0;
  6.                
  7.                 while((len=fis.read(buf))!=-1) {
  8.                         System.out.println(new String(buf,0,len));
  9.                 }
  10.                
  11.                 fis.close();
  12.         }
复制代码
这是复制媒体文件
  1. public class CopyMP3 {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) throws IOException {
  6.                 // TODO Auto-generated method stub
  7.                
  8.                 long s1=System.currentTimeMillis();//写在第一行
  9.                 copyMP3_1();
  10.                 long s2=System.currentTimeMillis();
  11.                 System.out.println("复制mp3花费的时间::"+(s2-s1)+"毫秒");

  12.         }
  13.        
  14.         public static void copyMP3_1() throws IOException{
  15.                 BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("C:\\0.mp3"));
  16.                 BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("D:\\1.mp3"));
  17.                
  18.                 int read = 0;
  19.                
  20.                 while((read=bufis.read())!=-1) {
  21.                         bufos.write(read);
  22.                 }
  23.                
  24.                 bufos.close();
  25.                 bufis.close();
  26.         }

  27. }
复制代码

作者: 张林敏    时间: 2013-5-5 15:46
Jacky_Chen1990 发表于 2013-5-5 15:30
我就说下我的理解吧。

字符流主要用于文本文件的使用。

不错的回答,很容易理解记住。
这两个例子都有使用 FileInputStream ,复制MP3的那个例子还使用到 BufferedInputStream ,为什么还要套上这个流,有什么好处吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2