java進階(34)--File類、目錄複製

1、File類的理解java

一、File類不能完成文件的讀與寫。數組

二、FIle類表明:文件或目錄的路徑名的抽象表示形式。spa

 

2、FIle類經常使用方法:code

一、建立一個FIle對象:File()對象

File f1=new File("D:\\javaTest\\fileTest02");

二、判斷File對象是否存在:exists()blog

System.out.println(f1.exists());

三、新建文件:createNewFile()遞歸

f1.createNewFile();

四、新建文件夾:mkdir()get

f1.mkdir();

五、建立多重目錄:mkdirs()string

        File f2=new File("D:\\javaTest\\a\\b\\c"); if(!f2.exists()){ f2.mkdirs(); }

六、獲取父級目錄:getParent()it

        File f2=new File("D:\\javaTest\\a\\b\\c"); if(!f2.exists()){ f2.mkdirs(); } String parentPath=f2.getParent(); System.out.println(parentPath);

執行結果:D:\javaTest\a\b

七、獲取絕對路徑目錄:getAbsolutePath()

        File f3=new File("hello\\test01"); System.out.println(f3.getParent()); System.out.println(f3.getAbsolutePath());

查看執行結果:

hello
C:\Users\Mr.White\IdeaProjects\javaAdvance\hello\test01

八、獲取名稱:getName()

九、獲取絕對文件名:getAbsoluteFile()

        File f4=new File("abc"); System.out.println(f3.getName()); System.out.println(f3.getAbsoluteFile());

查看執行結果:

test01
C:\Users\Mr.White\IdeaProjects\javaAdvance\hello\test01

十、判斷路徑是不是一個文件:isFile()

十一、判斷路徑是不是一個目錄:isDirectory()

        File f1=new File("D:\\javaTest\\test01.txt"); f1.createNewFile(); System.out.println(f1.isFile()); System.out.println(f1.isDirectory());

查看執行結果:

true
false

十二、獲取最後一次修改時間,結果爲13位時間戳:lastModified()

System.out.println(f1.lastModified());

1三、獲取文件的大小,單位字節:length()

System.out.println(f1.length());

1四、獲取當前目錄下全部子文件,返回FIle數組:listFiles()

        File f=new File("D:\\javaTest"); File[] files=f.listFiles(); for(File file:files){ System.out.println(file.getAbsolutePath()); }

 

3、目錄拷貝,將C:\\test01目錄下內容拷貝至D:\\test01目錄下

 使用FIle類,流集合遞歸完成。

 1 package JAVAADVANCE;  2 import java.io.*;  3 import java.lang.reflect.Field;  4 public class TestAdvance34FileTest03Copy {  5     public static void main(String[] args) throws IOException {  6         //拷貝源.
 7         File srcFile = new File( "c:\\test01");  8         //拷貝目標
 9         File destFile = new File( "D:\\"); 10         //調用方法拷貝
11  copyDir(srcFile, destFile); 12  } 13     private static void copyDir(File srcFile, File destFile) { 14         if(srcFile.isFile()) { 15             // srcFile若是是一個文件的話,遞歸結束。 16             //是文件的時候須要拷貝 17             //...一邊讀一邊寫
18             FileInputStream in=null; 19             FileOutputStream out=null; 20             try { 21                 //讀這個文件
22                 in=new FileInputStream(srcFile); 23                 //寫到這個文件中
24                 String path=(destFile.getAbsolutePath().endsWith("\\")  ? destFile.getAbsolutePath() : destFile.getAbsolutePath()+"\\")+srcFile.getAbsolutePath().substring(3); 25                 out=new FileOutputStream(path); 26                 //一邊讀一邊寫
27                 byte[] bytes=new byte[1024*1024];//一次複製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             // 獲取全部文件的(包括目錄和文件)絕對路徑 60             //System.out.println(file.getAbsolutePath());
61             if(file.isDirectory()){ 62                 //新建對應的目錄 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=new File(destDir); 69                 if(!newFile.exists()){ 70  newFile.mkdirs(); 71  } 72  } 73             //遞歸調用
74  copyDir(file, destFile); 75  } 76  } 77 }
相關文章
相關標籤/搜索