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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cxdzh 中级黑马   /  2014-10-24 18:05  /  2330 人查看  /  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 个回复

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

求分享题目..
回复 使用道具 举报
cxdzh 中级黑马 2014-10-25 16:06:28
14#
yangzhong1991 发表于 2014-10-25 15:56
为什么你的代码这么长...明明只要短短几行就可以解决的...还有不是必考,我面试就没考到 ...

没见我用3种方法复制了3份么...这是学习笔记...
回复 使用道具 举报
考试时随便写一种就可以了吧
回复 使用道具 举报
最近好像是很频繁。
回复 使用道具 举报
饼子 来自手机 中级黑马 2014-10-26 14:36:04
17#
感谢楼主分享
回复 使用道具 举报
nyk 中级黑马 2014-10-26 16:28:15
18#
学习下……
回复 使用道具 举报
学习学习~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马