A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张林敏 中级黑马   /  2013-5-5 15:20  /  1222 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张林敏 于 2013-5-6 13:12 编辑

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


我们在使用这些流时要怎么选择使用这些?有基本的使用方法没,求解?

5 个回复

正序浏览
Jacky_Chen1990 发表于 2013-5-5 15:30
我就说下我的理解吧。

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

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

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

基本使用方法其实都差不多的,除非有特殊的需求。
这是读取文本文件
  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:22
呃,等大神回答。。。

你就是。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马