您的位置:首页 > 其它

IO流笔记第二发 简单拷贝io流

2016-03-04 19:10 288 查看
用FileInputStream和FileOutputStream做一个简单的拷贝操作。中间需要注意的是这里采用了一个处理异常的模板。以及对文件拷贝时数据不足512个字节或者多余512个字节的处理。用fout.write(buf,0,len);这个操作来读buf中0到len个可以处理数据不足,用do while (fin.available()>0);可以看文件中是否还有数据,如果有的话就继续读 可以处理数据大于512个字节的情况。最后用抛一个throw new RuntimeException("关流失败!!");//前后台知识点,给用户看的,这个RuntimeException是给用户看的,类似于404not
found这种类型。简单的加密处理就是在每次读进来的时候进行加减处理。解密的原理就是写的时候先用加密的原理加减掉,再输出来。但是这种简单的加密解密有不足,因为有的点是处于临界,会失真的。核心思想就是数据读取和写的时候可以进行变换处理

package cn.hncu.io1;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopySteam {
public static void main(String[] args) {
String dir1="e:/abc/a/";
String dir2="e:/abc/b/";
String fileName="a.txt";
byte buf[]=new byte[512];
//io流的异常处理的模板
FileInputStream fin=null;
FileOutputStream fout=null;
try {
fin=new FileInputStream(dir1+fileName);
fout=new FileOutputStream(dir2+fileName);
do {
int len=fin.read(buf);
fout.write(buf,0,len);
} while (fin.available()>0);//用fin.available()来判断是否还有东西。

} catch(IOException e){
System.out.println("我输出的io流信息有错!!!");
}finally{
try{
if(fin!=null){
fin.close();
}
if(fout!=null){
fout.close();
}
}catch (Exception e) {
throw new RuntimeException("关流失败!!");//前后台,给用户看的

}
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: