java file类复制文件路径_java进阶(34)--File类、目录复制
一、File類的理解
1、File類不能完成文件的讀與寫。
2、FIle類代表:文件或目錄的路徑名的抽象表示形式。
二、FIle類常用方法:
1、創(chuàng)建一個(gè)FIle對(duì)象:File()
File f1=new File("D:\\javaTest\\fileTest02");
2、判斷File對(duì)象是否存在:exists()
System.out.println(f1.exists());
3、新建文件:createNewFile()
f1.createNewFile();
4、新建文件夾:mkdir()
f1.mkdir();
5、創(chuàng)建多重目錄:mkdirs()
File f2=new File("D:\\javaTest\\a\\b\\c");if(!f2.exists()){
f2.mkdirs();
}
6、獲取父級(jí)目錄:getParent()
File f2=new File("D:\\javaTest\\a\\b\\c");if(!f2.exists()){
f2.mkdirs();
}
String parentPath=f2.getParent();
System.out.println(parentPath);
執(zhí)行結(jié)果:D:\javaTest\a\b
7、獲取絕對(duì)路徑目錄:getAbsolutePath()
File f3=new File("hello\\test01");
System.out.println(f3.getParent());
System.out.println(f3.getAbsolutePath());
查看執(zhí)行結(jié)果:
hello
C:\Users\Mr.White\IdeaProjects\javaAdvance\hello\test01
8、獲取名稱:getName()
9、獲取絕對(duì)文件名:getAbsoluteFile()
File f4=new File("abc");
System.out.println(f3.getName());
System.out.println(f3.getAbsoluteFile());
查看執(zhí)行結(jié)果:
test01
C:\Users\Mr.White\IdeaProjects\javaAdvance\hello\test01
10、判斷路徑是否是一個(gè)文件:isFile()
11、判斷路徑是否是一個(gè)目錄:isDirectory()
File f1=new File("D:\\javaTest\\test01.txt");
f1.createNewFile();
System.out.println(f1.isFile());
System.out.println(f1.isDirectory());
查看執(zhí)行結(jié)果:
true
false
12、獲取最后一次修改時(shí)間,結(jié)果為13位時(shí)間戳:lastModified()
System.out.println(f1.lastModified());
13、獲取文件的大小,單位字節(jié):length()
System.out.println(f1.length());
14、獲取當(dāng)前目錄下所有子文件,返回FIle數(shù)組:listFiles()
File f=new File("D:\\javaTest");
File[] files=f.listFiles();for(File file:files){
System.out.println(file.getAbsolutePath());
}
三、目錄拷貝,將C:\\test01目錄下內(nèi)容拷貝至D:\\test01目錄下
使用FIle類,流集合遞歸完成。
1 package JAVAADVANCE;2 import java.io.*;3 import java.lang.reflect.Field;4 public classTestAdvance34FileTest03Copy {5 public static voidmain(String[] args) throws IOException {6 //拷貝源.
7 File srcFile = new File( "c:\\test01");8 //拷貝目標(biāo)
9 File destFile = new File( "D:\\");10 //調(diào)用方法拷貝
11 copyDir(srcFile, destFile);12 }13 private static voidcopyDir(File srcFile, File destFile) {14 if(srcFile.isFile()) {15 //srcFile如果是一個(gè)文件的話,遞歸結(jié)束。16 //是文件的時(shí)候需要拷貝17 //...一邊讀一邊寫
18 FileInputStream in=null;19 FileOutputStream out=null;20 try{21 //讀這個(gè)文件
22 in=newFileInputStream(srcFile);23 //寫到這個(gè)文件中
24 String path=(destFile.getAbsolutePath().endsWith("\\") ? destFile.getAbsolutePath() : destFile.getAbsolutePath()+"\\")+srcFile.getAbsolutePath().substring(3);25 out=newFileOutputStream(path);26 //一邊讀一邊寫
27 byte[] bytes=new byte[1024*1024];//一次復(fù)制1MB
28 int readCount=0;29 while ((readCount=in.read(bytes))!=-1){30 out.write(bytes,0,readCount);31 }32
33 } catch(FileNotFoundException e) {34 e.printStackTrace();35 } catch(IOException e) {36 e.printStackTrace();37 } finally{38 if (out!=null){39 try{40 out.close();41 } catch(IOException e) {42 e.printStackTrace();43 }44 if (in !=null){45 try{46 in.close();47 } catch(IOException e) {48 e.printStackTrace();49 }50 }51 }52
53 }54 return;55 }56 //獲取源下面的子目錄
57 File[] files =srcFile.listFiles();58 for(File file : files){59 //獲取所有文件的(包括目錄和文件)絕對(duì)路徑60 //System.out.println(file.getAbsolutePath());
61 if(file.isDirectory()){62 //新建對(duì)應(yīng)的目錄63 //System.out.println(file.getAbsolutePath());
64 String srcDir=file.getAbsolutePath();//獲取源目錄65 //System.out.println(srcDir.substring(3));
66 String destDir=(destFile.getAbsolutePath().endsWith("\\") ? destFile.getAbsolutePath() : destFile.getAbsolutePath()+"\\")+srcDir.substring(3);67 //System.out.println(destDir);
68 File newFile=newFile(destDir);69 if(!newFile.exists()){70 newFile.mkdirs();71 }72 }73 //遞歸調(diào)用
74 copyDir(file, destFile);75 }76 }77 }
總結(jié)
以上是生活随笔為你收集整理的java file类复制文件路径_java进阶(34)--File类、目录复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: s7 200 java_java and
- 下一篇: ffmpeg java 使用_macos