使用FileInputStream和FileOutputStream方法复制文件
该方法可以复制任意文件
/**
* 使用FileInputStream和FileOutputStream方法复制文件是万能的
* 任何格式文件都可以
*/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) {
FileInputStream fileInput=null;
FileOutputStream fileOutput=null;
try {
//输入对象(读)
fileInput=new FileInputStream("");
//输出对象(写)
fileOutput=new FileOutputStream("");
//一边读一边写
byte[] bytes=new byte[1024*1024];//数组大小用来表示一次读取文件的字节大小
int count=0;//用来表示读取的字节大小
if((count=fileInput.read(bytes))!=-1){//当read()方法返回值为-1则表示文件当前完毕
fileOutput.write(bytes,0,count);//表示从bytes数组的第0位开始写count个字节
}
//文件输出后要刷新
fileOutput.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//文件输出输入后要关闭
if(fileInput!=null){
try {
fileInput.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fileOutput!=null){
try {
fileOutput.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
FileReader和FileWriter方法
FileReader和FileWriter只能复制文本类型
/*
FileReader和FileWriter只能复制文本类型
*/
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopy01 {
public static void main(String[] args) {
FileReader in=null;
FileWriter out=null;
try {
//读取文件
in=new FileReader("");
//写
out=new FileWriter("");
//一边读一边写
char[] chars=new char[1027*1024];
int count=0;
if((count=in.read(chars))!=-1){
out.write(chars,0,count);
}
//文件写后要刷新
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(in!=null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}