程序员Java学习笔记架构算法设计模式和编程理论

File类(操作文件)

2017-02-11  本文已影响618人  奋斗的老王

IO流(Input Output)

File类概述

public class Demo {
    public static void main(String[] args) {
        //File file = new File("F:"+File.separator+"a.txt"); //  在linux机器上是不是一个合法路径??? 
        File file = new File("F:/a.txt"); 
        
        /*File parentFile = new File("F:\\");
        File file = new File("F:\\","a.txt");*/
        System.out.println("存在吗? "+ file.exists());  // exists 判断该文件是否存在,存在返回true,否则返回false。
//      System.out.println("目录分隔符:"+ File.separator);
    }
}
public static void main(String[] args) {
        File file = new File();
    }
  1. File对象没有无参数构造.创建对象需要传参. 根据API文档提示,传入一个文件的字符串路径. String path="c:/a.txt";(a.txt 文件在c盘下已经存在)
  2. File类的对象,既可以代表文件也可以代表文件夹
- file 是一个文件对象
public static void main(String[] args) {
        String path = "c:/a.txt";
        File file = new File(path);
}
- file 是一个文件夹对象
public static void main(String[] args) {
        String path = "c:/test";
        File file = new File(path);
    }

路径

public class Demo {
    public static void main(String[] args) {
        File file = new  File(".");
        System.out.println("当前路径是:"+ file.getAbsolutePath());
        
        File file2 = new File("..\\..\\a.txt");
        System.out.println("存在吗?"+ file2.exists());
        
    }
}

File类中常用的方法

public class Demo {
    public static void main(String[] args) throws IOException {
        File file = new File("F:\\aa");
        System.out.println("创建成功了吗?"+file.createNewFile()); //createNewFile 创建一个指定的文件,如果该文件存在了,则不会再创建,如果还没有存在则创建。创建成功返回true,否则返回false。
        
        File dir = new  File("F:\\a.txt");
        System.out.println("创建文件夹成功吗?"+dir.mkdir()); // mkdir 创建一个单级文件夹,
        dir = new File("F:\\aa\\bb");
        System.out.println("创建多级文件夹:"+ dir.mkdirs());
        
        //renameTo()  如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且还不能操作文件夹。 
        File destFile = new File("F:\\aaaaaaw");
        System.out.println("重命名成功吗?"+file.renameTo(destFile)) ;     
    }
}
public class Demo {
    
    public static void main(String[] args) {
    /*  
        // 删除 : 
            File file = new File("F:\\a.txt");
        System.out.println("删除成功吗? "+ file.delete()); //delete方法不能用于删除非空的文件夹。 delete方法会马上删除一个文件。
        file.deleteOnExit();  //jvm退出的时候删除文件。  一般用于删除临时 文件。     
        System.out.println("哈哈哈");
    */
                // 判断 : 
        File file = new File("..\\..\\a.txt");
        System.out.println("存在吗?"+ file.exists());
        System.out.println("判断是否是一个文件:"+file.isFile()); //如果是文件返回true,否则返回false.
        System.out.println("判断是否是一个文件夹:"+ file.isDirectory()); // 是文件夹返回ture,否则返回false.
        System.out.println("是隐藏的 文件吗:"+ file.isHidden());
        System.out.println("是绝对路吗?"+ file.isAbsolute());
    }   
}
public class  Demo{
    public static void main(String[] args) {
        File file = new File("..\\..\\a.txt");
        System.out.println("文件名:"+ file.getName());
        System.out.println("获取绝对路径:"+ file.getPath());
        System.out.println("getAbsolutePath获取绝对路径:"+file.getAbsolutePath());
        System.out.println("获取文件的的大小(字节为单位):"+ file.length());
        System.out.println("获取文件的父路径:"+ file.getParent());
        
        //使用毫秒值转换成Date对象
        long lastModified = file.lastModified();
        Date date = new Date(lastModified); 
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
        System.out.println("获取最后一次的修改时间(毫秒值):"+ dateFormat.format(date) );
        
    }   
}
public class Demo {
    
    public static void main(String[] args) {
        /*File[] roots = File.listRoots(); //列出所有的根目录
        for(File file  : roots){
            System.out.println(file);
        }*/
        
        File file = new File("F:\\1208\\day17");
        
        /*
        String[] fileNames = file.list(); //把 当前文件夹下面的所有子文件名与子文件夹名存储到一个String类型 的数组中返回
        for(String fileName : fileNames){
            System.out.println(fileName);
        }*/
        
        File[] files = file.listFiles(); // 把当前文件夹下面的所有子文件与子文件夹都使用了一个FIle对象描述,然后把这些File对象存储到一个FIle数组中返回
        for(File fileItem : files){
            System.out.println("文件名:"+ fileItem.getName());
        }   
    }
}
文件:
    文件名1
    文件名2
    文件名3
    ..

文件夹:
    文件夹名1
    文件夹名2
    文件夹名3
    ....
// 自定义一个文件名过滤器
class MyFilter implements FilenameFilter{

    @Override
    public boolean accept(File dir, String name) {
        //System.out.println("文件夹:"+dir+" 文件名:"+ name);
        return name.endsWith(".java");
    }
    
}

public class Demo{
    
    public static void main(String[] args) {
        File dir = new File("F:\\1208\\day06\\代码\\day06");
        listJava2(dir);
        
    }
    
    public static void listJava2(File dir){
        File[] files = dir.listFiles(new MyFilter()); //得到文件夹下面的所有子文件与文件夹。
        for(File file : files){
            System.out.println(file.getName());
        }
    }
    
    
    
    
    //列出所有的java文件
    public static void listJava(File dir){
        File[] files = dir.listFiles(); //获取到了所有的子文件
        for(File file : files){
            String fileName = file.getName();
            /*if(fileName.endsWith(".java")&&file.isFile()){
                System.out.println(fileName);
            }*/
            
            if(fileName.matches(".+\\.java")&&file.isFile()){
                System.out.println(fileName);
            }
            
        }
    }   
    
    public static void listFile(File dir){
        File[] files = dir.listFiles();//获取到所有的子文件
        System.out.println("文件:");
        for(File fileItem : files){
            if(fileItem.isFile()){
                System.out.println("\t"+fileItem.getName());
            }
        }
        
        
        System.out.println("文件假:");
        for(File fileItem : files){
            if(fileItem.isDirectory()){
                System.out.println("\t"+fileItem.getName());
            }
        }   
    }
}
上一篇 下一篇

猜你喜欢

热点阅读