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

来源:互联网 发布:linux命令行怎么传文件 编辑:程序博客网 时间:2024/06/06 13:01

======================================================
注:本文源代码点此下载
======================================================

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^)/
原创粉丝点击