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

© cxdzh 中级黑马   /  2014-10-24 18:05  /  2660 人查看  /  18 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.BufferedInputStream;
  2. import java.io.BufferedOutputStream;
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;

  6. public class FileInputStreamDemo {

  7.         public static void main(String[] args) throws IOException {
  8.                 copy_1();
  9.                 copy_2();
  10.                 copy_3();               
  11.         }

  12.        
  13.         //使用缓冲区的复制方法.
  14.         public static void copy_3() throws IOException {
  15.                 //创建字节输入流对象,读取源文件.
  16.                 FileInputStream fi=new FileInputStream("d:\\迅雷下载\\你给我听好.mp3");
  17.                 //创建字节输入流缓冲区对象.
  18.                 BufferedInputStream bffi=new BufferedInputStream(fi);
  19.                
  20.                 //创建字节输出流对象,写入目标文件.
  21.                 FileOutputStream fo=new FileOutputStream("d:\\你给我听好_3.mp3");               
  22.                 //创建字节输出流缓冲区对象.
  23.                 BufferedOutputStream bffo=new BufferedOutputStream(fo);
  24.                
  25.                 //定义一个整数型变量,用来判断读取结果.
  26.                 int ch=0;
  27.                 //使用输入流缓冲区对象方法读取源文件数据,如果读取结果不等于-1,即代表读取到数据,进行循环.
  28.                 while((ch=bffi.read())!=-1)
  29.                 {
  30.                 bffo.write(ch);        //使用输出流缓冲区对象方法,将读取结果写入输出流缓冲区.
  31.                 }
  32.                 bffi.close();//循环完成后关闭源文件.
  33.                 bffo.close();//循环完成后将输出流缓冲区数据写入目标文件,并关闭目标文件.
  34.         }
  35.         //使用自定义缓冲区的复制方法.直接创建需复制文件同等大小的字节数组,但此方法有安全隐患,不适用大文件.
  36.         public static void copy_2() throws IOException {
  37.                 //创建字节输入流对象,读取源文件.
  38.                 FileInputStream fi=new FileInputStream("d:\\迅雷下载\\你给我听好.mp3");               
  39.                 //创建字节输出流对象,写入目标文件.
  40.                 FileOutputStream fo=new FileOutputStream("d:\\你给我听好_2.mp3");               

  41.                 //创建一个跟源文件同等大小的字节数组,用来临时存储从源文件读取的数据.
  42.                 byte[] buf=new byte[fi.available()];
  43.                 fi.read(buf);//使用输入流对象方法,读取源文件内容并存储到数组.
  44.                 fo.write(buf);//使用输出流对象方法,将数组内容写入目标文件.
  45.                 fi.close();//关闭源文件.
  46.                 fo.close();//关闭目标文件.
  47.         }
  48.         //使用自定义缓冲区的复制方法.创建一个1024字节的数组,循环读取源数据并写入目标文件.
  49.         private static void copy_1() throws IOException {
  50.                 //创建字节输入流对象,读取源文件.
  51.                 FileInputStream fi=new FileInputStream("d:\\迅雷下载\\你给我听好.mp3");               
  52.                 //创建字节输出流对象,写入目标文件.
  53.                 FileOutputStream fo=new FileOutputStream("d:\\你给我听好_1.mp3");               

  54.                 //创建一个1024字节的数组,用来临时存储从源文件读取的数据.
  55.                 byte[] buf=new byte[1024];
  56.                 int len=0;//定义一个整数型变量来存储读取到的字节数.
  57.                 while((len=fi.read(buf))!=-1)//使用输入流方法读取若干字节存储到buf数组,如果读取到的字节数不等于-1,即代表读取到数据,进入循环.
  58.                 {
  59.                 fo.write(buf,0,len);//使用输出流对象方法,将字节数组中,读取到的len个数据写入到目标文件.
  60.                 }
  61.                 fi.close();//关闭源文件.
  62.                 fo.close();//关闭目标文件.
  63.         }

  64. }
复制代码

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

18 个回复

正序浏览
学习学习~~
回复 使用道具 举报
nyk 中级黑马 2014-10-26 16:28:15
18#
学习下……
回复 使用道具 举报
饼子 来自手机 中级黑马 2014-10-26 14:36:04
17#
感谢楼主分享
回复 使用道具 举报
最近好像是很频繁。
回复 使用道具 举报
考试时随便写一种就可以了吧
回复 使用道具 举报
cxdzh 中级黑马 2014-10-25 16:06:28
14#
yangzhong1991 发表于 2014-10-25 15:56
为什么你的代码这么长...明明只要短短几行就可以解决的...还有不是必考,我面试就没考到 ...

没见我用3种方法复制了3份么...这是学习笔记...
回复 使用道具 举报
cxdzh 中级黑马 2014-10-25 16:04:59
13#
天蝎降降温 发表于 2014-10-25 14:38
给我出的那两个题,论坛都没见过,我的个擦擦,幸好我会一点。

求分享题目..
回复 使用道具 举报
为什么你的代码这么长...明明只要短短几行就可以解决的...还有不是必考,我面试就没考到
回复 使用道具 举报
给我出的那两个题,论坛都没见过,我的个擦擦,幸好我会一点。
回复 使用道具 举报
lylHAHA 来自手机 中级黑马 2014-10-25 09:09:28
10#
学习下……
回复 使用道具 举报
看看。。。。。。。。
回复 使用道具 举报
Tsinvat 中级黑马 2014-10-25 08:18:11
8#
你还能发这么长?我写了一点点就发送失败错误
回复 使用道具 举报
暂时还看不懂
回复 使用道具 举报
感谢楼主分享!
回复 使用道具 举报
这注释加的,看的人眼花缭乱!
回复 使用道具 举报
学习了!
回复 使用道具 举报
看了好几个分享,貌似都有
回复 使用道具 举报
的确考的好频繁。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马