File 类详解

Java File类的功能非常强大,利用java基本上可以对文件进行所有操作。文本将对Java File 文件操作的类详细的分析,并将File类中的常用方法进行简单介绍。

构造函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class FileDemo {
     public static void main(String[] args) {
         //构造函数File(String pathname)
         File f1 = new File( "D:\\a\\1.txt" );
         
         //File(String parent,String child)
         File f2 = new File( "D:\\a" , "2.txt" );
         
         //File(File parent,String child)
         File f3 = new File( "D:" +File.separator+ "a" );
         File f4 = new File(f3, "3.txt" );
         
         System.out.println(f1);
     }
}

 创建方法

?
1
2
3
4
5
1 boolean  createNewFile() 不存在就返回 true ;存在返回 false
 
2 boolean mkdir()  创建目录
 
3 boolean mkdirs()  创建多级目录

 删除方法

1  boolean delete()

2 boolean deleteOnExit()文件使用后删除

?
1
2
3
4
5
6
7
8
9
10
11
12
public class FileDemo {
     public static void main(String[] args) {
     File f = new File( "D:\\1.txt" );
     try {
         System.out.println(f.createNewFile());
         System.out.println(f.delete());
     } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
     }
     
     }

  判断方法

  1 boolean canExecute()  判断文件是否可以执行

  2 boolean canRead() 判断文件是否可读

  3 boolean canWrite() 判断文件是否可写

  4 boolean exist() 判断文件是否存在

  5 boolean isDirectory() 判断文件是目录

  6 boolean isFile() 判断是否是文件

  7 boolean canHidden() 判断文件是否可见

  8 boolean isAbsolute() 判断文件是否是绝对路劲 ,文件不存在也能判断

 获取方法

 1.String getName()
 2.String getPath()
 3.String getAbsolutePath()
 4.String getParent()//如果没有父目录返回null
 5.long lastModified()//获取最后一次修改的时间
 6.long length()
 7.boolean renameTo(File f)
 8.File[] liseRoots()//获取机器盘符
9.String[] list()
10.String[] list(FilenameFilter filter)

 列出磁盘下的文件和文件夹

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class FileDemo3 {
      public static void main(String[] args){
          File[] files =File.listRoots();
          for (File file:files){
              System.out.println(file);
              if (file.length()> 0 ){
                  String[] filenames =file.list();
                  for (String filename:filenames){
                      System.out.println(filename);
                  }
              }
          }
      }
 
  }

  

 文件过滤

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class FileDemo4 {
     public static void main(String[] args){
         File[] files =File.listRoots();
         for (File file:files){
             System.out.println(file);
             if (file.length()> 0 ){
                 String[] filenames =file.list( new FilenameFilter(){
                     //file 过滤目录 name 文件名
                     public boolean accept(File file,String filename){
                         return filename.endsWith( ".mp3" );
                     }
                 });
                 for (String filename:filenames){
                     System.out.println(filename);
                 }
             }
         }
     }
 
}

  

 利用递归列出所有文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class FileDemo5 {
     public static void main(String[] args){
         File f = new File( "e:\\音樂" );
         showDir(f);
     }
     public static void showDir(File dir){
         System.out.println(dir);
         File[] files =dir.listFiles();
         for (File file:files){
             if (file.isDirectory())
                 showDir(file);
             else
                 System.out.println(file);
         }
     }
}

  

 移动文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Test5 {
     public static void main(String[] args){
         File f1 = new File( "d:\\" );
         moveFile(f1);
     }
public static void moveFile(File dir){
     File[] files=dir.listFiles();
     for (File file:files){
         if (file.isDirectory())
             moveFile(file);
         else {
             if (file.getName().endsWith( ".java" ))
                 file.renameTo( new File( "c:\\jad\\" +
             file.getName().substring( 0 ,file.getName().lastIndexOf( '.' ))+ ".jad" ));
             }
         }
     }
}

  

猜你喜欢

转载自blog.csdn.net/mahuicool/article/details/77914635
今日推荐