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 }
相关文章
相关标签/搜索