黑马程序员技术交流社区
标题:
求大神来解决以下问题,谢谢了!
[打印本页]
作者:
heimafeng
时间:
2015-8-10 21:40
标题:
求大神来解决以下问题,谢谢了!
/** 使用带缓冲功能的字节流复制文件。
* 思路:1:创建高效字节输入流对象读取要复制的目标文件
* 2:创建高效字节输出流对象把读到的数据写入到目的地
*/
作者:
段山虎
时间:
2015-8-10 23:40
难看 !!!!真好 不粗品 太 给力 很 喜欢 头像很恶心
作者:
周博文
时间:
2015-8-11 00:16
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 需求:使用带缓冲功能的字节流复制文件。
*
* 分析:首先解决复制文件这类问题要高清三点:
* 1.源文件:既然题目要求是字节流,那么源文件可以是任意类型文件,例如mp3,txt,bmp......
* 此处我以复制一个.mp3文件为例
* 2.目标文件:类型需要与源文件一致,名字任意,例如:target.mp3
* 3.使用流的类型:文件字节流 + 缓冲流
* 搞清楚以上三点之后就知道数据的流向为:
* source.mp3--->字节缓冲流--->target.mp3
* 这里务必要清楚缓冲流是对字节流的一种包装,以提高复制文件的效率。
* 因此具体的复制文件的步骤如下:
* 1.定义一个文件字节缓冲输入流,输入源文件为:source.mp3(你可以任意找一首歌作为替代)
* 2.定义一个文件字节缓冲输出流,输出目标文件为:target.mp3
* 3.选择两种复制文件的方式的一种
* A:一次复制一个字节
* B:一次复制一个字节数组
* 4.调用输入流的read方法将源文件内容读入程序
* 5.调用输出流的write方法将文件内容写入目标文件
* 6.调用流的close方法关闭资源
*/
public class IODemo {
public static void main(String[] args) throws IOException {
//定义一个文件字节输入流
FileInputStream fis = new FileInputStream("source.mp3");
//用缓冲流包装字节输入流
BufferedInputStream bis = new BufferedInputStream(fis);
//定义一个文件字节输出流
FileOutputStream fos = new FileOutputStream("target.mp3");
//用缓冲流包装字节输出流
BufferedOutputStream bos = new BufferedOutputStream(fos);
//这里选择第二种复制方式:一次复制一个字节数组
//定义一个字节数组,长度为1024作为缓冲区
byte[] bytes = new byte[1024];
//定义一个变量len用于记录每次读入缓冲区数据的长度
int len = 0;
//对循环对文件数据进行读入和写出
while((len = bis.read(bytes)) != -1) {
bos.write(bytes, 0, len);
}
//关闭资源
bis.close();
bos.close();
}
}
复制代码
作者:
heimafeng
时间:
2015-8-11 21:52
这个问题没有人回答我吗!
作者:
小胡子721
时间:
2015-8-11 22:08
还木有学,还不会
作者:
llwhcm
时间:
2015-8-12 00:39
顶一下
作者:
icichacici
时间:
2015-8-12 06:46
你说的没有错哦
作者:
heimafeng
时间:
2015-8-12 21:49
黑马真是太给力了!希望黑马以后会越来越好!
作者:
heimafeng
时间:
2015-8-14 23:42
黑马会越来越好
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2