文件输入流 FileInputStream,文件输出流 FileOutputStream
复制文本文件
public class CopyFileTest {
public static void main(String[] args) throws IOException {
//源文件必须存在,目的文件可以不存在,文件输出流会自动创建
File file1 = new File("C:\\Users\\Administrator\\Desktop\\FileTest\\测试文本.txt");
File file2 = new File("C:\\Users\\Administrator\\Desktop\\FileTest\\测试文本1.txt");
FileInputStream fis = null; //文件输入流
FileOutputStream fos = null; //文件输出流
try {
fis = new FileInputStream(file1); //文件输入流绑定源文件
fos = new FileOutputStream(file2); //文件输出流绑定目的文件
int b = -1; //若b==-1,表示已经读取完文件
while ((b=fis.read())!=-1){ //读取一个字符并存入b,如果b!=-1则写入目标文件
fos.write(b);
}
}catch (IOException e){
e.printStackTrace();
}finally {
//关闭流
if (fis != null) {
fis.close();
}
if (fos != null) {
fos.close();
}
}
}
}
复制图片文件
public class CopyImageTest {
public static void main(String[] args) throws IOException {
//源文件必须存在,目的文件可以不存在,文件输出流会自动创建
File file1 = new File("C:\\Users\\Administrator\\Desktop\\FileTest\\测试图片.png");
File file2 = new File("C:\\Users\\Administrator\\Desktop\\FileTest\\测试图片1.png");
FileInputStream fis = null; //文件输入流
FileOutputStream fos = null; //文件输出流
try {
fis = new FileInputStream(file1); //文件输入流绑定源文件
fos = new FileOutputStream(file2); //文件输出流绑定目的文件
byte[] bytes = new byte[1024];
//如果len==-1,表示已经读取完文件。如果len!=-1,表示这次读取的字节数目
int len = -1;
do {
len = fis.read(bytes); //尝试读取一个字节数组长度的数据,len接收实际读取的长度
if (len!=-1){ //是否读取完毕
fos.write(bytes,0,len); //写入目标文件,指定输入长度==本次实际读取的长度
}
}while (len!=-1); //还没到末尾就继续复制
}catch (IOException e){
e.printStackTrace();
}finally {
//关闭流
if (fis != null) {
fis.close();
}
if (fos != null) {
fos.close();
}
}
}
}