版權聲明:以下代碼均由小任一人碼成,轉載請註明出處。
源碼
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class num6 {
//file讀和寫實現複製文件
public static void main(String[] args) throws Exception {
//創建file對象
File f=new File("e:\\test.jpg");
//判斷文件是否存在
if(f.exists()){
System.out.println("test.jpg存在,可以複製");
}else{
f.createNewFile();
System.out.println("test.jpg不存在,新建成功,可以複製");
}
//創建FileInputStream對象
FileInputStream inp=new FileInputStream(f);
//創建FileOutputStream對象
//判斷demo目錄是否存在
File f1=new File("e:\\demo");
if(f1.isDirectory()){
FileOutputStream out=new FileOutputStream("e:\\demo\\"+f.getName());
byte bytes[]=new byte[1024];
int temp=0; //邊讀邊寫
while((temp=inp.read(bytes))!=-1){ //讀
out.write(bytes,0,temp); //寫
}
//結束
inp.close();
out.close();
System.out.println("文件拷貝成功!");
}else{
//新建demo目錄
f1.mkdir();
System.out.println("demo目錄不存在,已經新建成功,繼續複製");
FileOutputStream out=new FileOutputStream("e:\\demo\\"+f.getName());
byte bytes[]=new byte[1024];
int temp=0; //邊讀邊寫
while((temp=inp.read(bytes))!=-1){ //讀
out.write(bytes,0,temp); //寫
}
//結束
inp.close();
out.close();
System.out.println("文件拷貝成功!");
}
}
}
代碼運行圖
1.test.jpg和demo目錄都不存在的情況
2.test.jpg存在而demo目錄不存在
3.test.jpg不存在而demo目錄存在
4.test.jpg和demo目錄都存在
源碼解析
首先創建一個testjpg的file對象,然後用exists()判斷test.jpg是否存在,如果不存在則提示並且用createNewFile()新建,然後創建FileInputStream對象,再創建demo目錄的file對象,用isDirectory()判斷demo目錄是否存在,如果存在則創建FileOutputStream對象,邊讀邊寫實現文件的複製,若demo目錄不存在,則用mkdir()新建一個,然後再創建FileOutputStream對象,邊讀邊寫。
原文鏈接:https://www.xiaorenjc.net/Java/javafilefuzhi.html