package cn.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 这里呢,简单走一个文件输入流和文件输出流组合的小Demo;
*
* 还是一样,我们继续走一个自己的测试类;
* @author Administrator
*
*/
public class FileTest {
/**
* Java主函数|入口;
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// 在这里初始化目标文件;
String path = "D:\\Software\\VChat\\002.pdf";
// 初始化文件输入流;
FileInputStream fis = new FileInputStream(new File(path));
/**
* 初始化文件输出流;
* new FileOutputStream(String path, Boolean);
* 用来设置:如果文件存在的情况下,true追加数据;false覆盖数据;
*/
FileOutputStream fos = new FileOutputStream("D:\\Software\\VChat\\002Copy.pdf",true);
// 封装一个定长字节数组;
byte [] byteArr = new byte[2048];
/**
* 循环获取文件流数据;
* FileInputStream.read(byte [] arr);
* 将读取到的流数据缓存在初始化的数组中;
*/
while(fis.read(byteArr) != -1){
/**
* 数据写入;
* FileOutputStream.write(byte arr,int offset,int overlength);
* 如果直接使用FileOutputStream.write(byte arr)装载数据,会有异常数据;
* 所以我们再数据写入的时候最好使用指定的方式将有效的数据写入;
*/
fos.write(byteArr, 0, byteArr.length);
}
/*
* 最后关闭资源;
* 注意:我们在关闭资源的时候要注意,先开的资源最后关;
* 后开的资源在先开的资源关闭后再关;
* 避免资源数据还在使用中抢先关闭造成数据异常;
*/
fos.close();
fis.close();
}
}