您的位置:首页 > 编程语言 > Java开发

Java中IO操作的小感悟(原创)

2012-01-16 04:29 399 查看
======================================================

注:本文源代码点此下载

======================================================

java中io操作的小感悟
(文件复制的几种方法)
在有铁锹、车的情况下把一堆沙子运到目的地有几种方法?
答:有如下几种方法:
1、用铁锹铲上沙子走到目的地,一铁锹一铁锹的运输。(小样累不死你不算完)
2、用铁锹把沙子先铲到车子上,然后车子到底有多大?
①车子如果足够装下这堆沙子那最好,直接装车拉走。
②车子本身不够大不能装下这堆沙子,那就装车到目的地卸车然后回来,如此反复直到车子足够装下剩下的沙子为止。
实际上io操作无非上面所述三种方法。小铁锹法、大卡车法、小车快跑法。
小铁锹法的具体实现:
file filetarget = new file(targetpath);// 目标文件实例化
inputstream streamin = new fileinputstream(filesource);// 输入流,输入对象源文件(锁定沙堆位置)
outputstream streamout = new fileoutputstream(filetarget);// 输出流,输出对象目标文件(锁定目的地位置)
int temponebyte = 0;// 声明一个字节的缓存(亮出小铁锹)
// (在没把这堆沙子铲完之前,就循环往复的干吧)
while ((temponebyte = streamin.read()) > -1) {// 逐个字节读取,在输入流没有读到文件结尾时(开始干活,铲沙子)
streamout.write(temponebyte);// 逐个字节写入(把沙子放到目的地)
}
大卡车法的具体实现:
file filetarget = new file(targetpath);// 目标文件实例化
byte[] tempcontainer = new byte[(int) filesource.length()];// 新建字节数组缓存源文件内容(找个能一次装下这堆沙子的大卡车来)
inputstream streamin = new fileinputstream(filesource);// 输入流,输入对象源文件(锁定沙堆位置)
streamin.read(tempcontainer);// 将源文件以输入流方式读入到字节数组(将沙子直接装车)
outputstream streamout = new fileoutputstream(filetarget);// 输出流,输出对象目标文件(锁定目的地位置)
streamout.write(tempcontainer);// 将字节数组写入到目标文件(到地方了可以卸车了)
小车快跑法的实现:
file filetarget = new file(targetpath);// 目标文件实例化
inputstream streamin = new fileinputstream(filesource);// 输入流,输入对象源文件(锁定沙堆位置)
outputstream streamout = new fileoutputstream(filetarget);// 输出流,输出对象目标文件(锁定目的地位置)
byte[] buff = new byte[1024];// 声明1024字节的缓存(小车,这个车就只能装这么多东西了)
//(在没把这堆沙子铲完之前,就循环往复的干吧)
for (int i = 0; (i = streamin.read(buff)) > 0;) {// 逐个缓存读取,再输入流到达结尾时i=-1不满足循环条件(开始装车了)
streamout.write(buff);// 逐个缓存写入(到地方了,卸车)
}
*在大卡车法和小车快跑法中都没有看到小铁锹的身影。估计是语言的智能化简化了小铁锹这个过程吧。
以上是最近向跳河学习java.io时的一点小感悟和跟我一样的菜鸟一同分享。

======================================================

在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: