zoukankan      html  css  js  c++  java
  • java===IO=file

    package File类;
    
    import java.io.File;
    import java.io.IOException;
    import java.text.DateFormat;
    import java.util.Date;
    
    public class FileDemo_1 {
    
        public static void main(String[] args) throws IOException {
    
            File_demo_5();
        }
    
        public static void File_demo_5() {
            File[] files =File.listRoots();
            for(File file:files){
                System.out.println(file);
            }
        }
    
        public static void File_demo_4() {
            /**
             * 重命名
             * */
            File f1 = new File("d:\a.txt");
            File f2 = new File("d:\b.txt");
            f1.renameTo(f2);//如果f2 不跟f1相同路径,文件也不存在,会实现剪切;
        }
    
        public static void File_demo_3() {
            /**
             * 判断:
             * */
            File f1 = new File("a.txt");
            boolean b1 = f1.exists();
            f1.isDirectory();//是不是目录
            f1.isFile();//是不是文件
        }
    
        public static void File_demo_2() throws IOException {
            /**
             * 创建与删除:
             * 返回值肯定是boolean; 
             * 注意文件正在被流操作是删不掉的;
             * */
            File file =new File("file.txt");
            boolean b = file.createNewFile();
            /**
             * 和输出流不一样,如果文件不存在,则创建,如果存在则不创建
             * 
             * 
             * */
            boolean b1 = file.delete();
            //file.deleteOnExit();叫虚拟机删除,在虚拟机退出时;一定会删除;
            File file1 = new File("abc\a\c\v\b");
            boolean b2 = file1.mkdir(); //创建目录 
            file1.mkdirs();//创建多级目录
            file1.delete();//目录里面有东西是删不掉的
        }
    
        public static void File_demo_1() throws IOException {
            /**
             * 获取:
             * 文件名称 
             * 文件路径
             * 文件修改时间
             * 文件大小
             * */
            File f = new File("d:\");
            File f1 = new File(f,"abc.txt");
            String name=f1.getName();
            String abspath=f1.getAbsolutePath();//绝对路径
            String path= f1.getCanonicalPath();//相对路径
            long time = f1.lastModified();
            f1.getFreeSpace();//剩余空间
            f1.getTotalSpace();//全部空间
            f1.getUsableSpace();//已使用空间
            long len = f1.length();
            Date date = new Date(time);
            DateFormat dateformate =DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
            String str_name = dateformate.format(date);
            System.out.println(str_name);
            /**
             * list();方法获取单签目录下的文件以及文件夹名称,包含隐藏文件。
             * 调用list方法的file对象中封装的必须是目录。
             * 否则会发生空指针异常
             * 如果访问的系统级目录,也会发生空指针异常,
             * 如果目录存在但是没有内容,会返回一个数组,但是长度为0;
             * 
             * */
            File file = new File("C:\");
            String [] names = file.list();
            for(String n: names){
                System.out.println(n);
            }
        }
    
    }
    package File类;
    
    import java.io.File;
    import java.io.FilenameFilter;
    
    public class FilterByJava implements FilenameFilter {
        private String str;
         public FilterByJava(String str) {
             this.str=str;
        }
    
        @Override
        public boolean accept(File dir, String name) {
    //File dir接收的是目录,String name接收的是目录下的每个文件及文件夹,FilenameFilter类中自动实现了转换成String类型而不是File类型
            return name.endsWith(str);
        }
    
    }
    package File类;
    
    import java.io.File;
    
    /**
     * 获取磁盘中带有指定后缀名的文件夹
     * */
    public class FileTest_1 {
    
        public static void main(String[] args) {
    
            listDemo_2();
        }
    
        private static void listDemo_2() {
            File dir = new File("d:\");
            File [] names=dir.listFiles(new FilterByJava(".java"));
            for(File name:names){
                System.out.println(name.toString());
            }
        }
    
    }
    package File类;
    
    import java.io.File;
    
    
    public class FileTest_2 {
    
        public static void main(String[] args) {
            File dir = new File("d:\api_java");
            int level=0;
    
            show(dir,level);
        }
    
        public static void show(File dir,int level) {
            System.out.println(getSpace(level)+dir.getName());
            File[]files = dir.listFiles();
            level++;
            for(File file: files){
                if(file.isDirectory()){
                    show(file,level);
                }else{
                    System.out.println(getSpace(level)+file.getName());
                }
                
            }
        }
    
        public static String getSpace(int level) {
            final String SPACE="   ";
            StringBuilder sb = new StringBuilder();
            for(int x=0;x<level;x++){
                sb.append(SPACE);
            }
            return sb.toString();
        }
    
    }
    package File类;
    
    import java.io.File;
    
    /*
     * 需求:删除一个含有多级目录的文件夹
     * 思路:遍历文件夹
     * 
     * */
    public class FileTest_3 {
    
        public static void main(String[] args) {
    
            File file = new File("d:\dir");
            removeFile(file);
        }
    
        public static void removeFile(File file) {
            File[]files = file.listFiles();
            for(File name:files){
                if(name.isDirectory()){
                    removeFile(name);
                }else{
                    System.out.println(name+":是否被删除:"+name.delete());
                }
                
            }
            System.out.println(file+":"+file.delete());
            
        }
    
    }
  • 相关阅读:
    A. Generous Kefa
    1031 骨牌覆盖
    1074 约瑟夫环 V2
    1073 约瑟夫环
    1562 玻璃切割
    Ants
    1024 矩阵中不重复的元素
    1014 X^2 Mod P
    1135 原根
    1010 只包含因子2 3 5的数
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6859314.html
Copyright © 2011-2022 走看看