zoukankan      html  css  js  c++  java
  • IO流--File

    (0)获取文件的两种方式

    使用File.separator可以实现跨平台的分割符

        //方法一
        File file1=new File("demo1.txt");
        file1.createNewFile();
        //方法二
        File file2=new File("C:"+File.separator,"text.txt");
        file2.createNewFile();
        //方法三
        File file3=new File("D:"+File.separator,"text2.txt");
        file3.createNewFile();
        System.out.println("file1:"+file1);
        System.out.println("file2:"+file2);
        System.out.println("file3:"+file3);

     

    (1)对文件的创建,删除,判断,获取信息,移动,重命名

            //文件的创建
            File file=new File("demo1.txt");
            //文件的删除(成功返回true失败返回false )
            System.out.println(file.delete());
            //文件在退出的时候删除(主要用于临时文件的删除)
            file.deleteOnExit();
            //判断
            System.out.println(file.exists());//是否存在
            System.out.println(file.isFile());//是否是文件
            System.out.println(file.isDirectory());//是否是文件夹
            System.out.println(file.isHidden());//是否隐藏
            System.out.println(file.isAbsolute());//是否是绝对路径
            //获取
            System.out.println(file.getName());//获取文件名
            System.out.println(file.getParent());//获取绝对路径的父级目录,获取相对路径的上级目录
            System.out.println(file.getPath());//获取封装的路径
            System.out.println(file.getAbsoluteFile());//获取据对路径封装成的文件对象
            System.out.println(file.getAbsolutePath());//获取绝对路径的字符创
            System.out.println(file.lastModified());//获取最后修改时间
            System.out.println(file.length());//获取文件的大小

     (2)文件重命名,移动

        //实现文件改名
        File file1=new File("C:\demo.txt");
        File file2=new File("C:\demo2.txt");
        System.out.println("haha   "+file2.renameTo(file1));;
        
        //实现文件的移动
        File file3=new File("C:\demo.txt");
        File file4=new File("C:\demo2.txt");
        System.out.println("haha   "+file3.renameTo(file4));;

     

    (3)获取列表(盘符列表,获取指定文件夹的目录,获取指定文件夹目录中符合条件的文件名列表,获取指定文件夹目录中符合条件的文件列表)

    //获取根目录盘符列表
        File[] fileLise=File.listRoots();
        for(File file :fileLise)
        {
            System.out.println(file);
        }
        
        //获取指定文件的子文件及以及一级子文件夹]
        //使用list时封装的对象必须是已经存在的文件夹
        File file5=new File("F:\test");
        file5.mkdir();
        String[] fileNames=file5.list();
        for(String name :fileNames)
        {
            System.out.println(name);
        }
        
        //获取指定目录下符合自定义条件的文件名列表
        File file7=new File("F:\");
        String[] fileList2=file7.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".exe");
            }
        });
        
        for(String name:fileList2)
        {
            System.out.println(name);
        }
        
        ////获取指定目录下符合自定义条件的文件列表
        File[] fileList3=file7.listFiles(new FileFilter() {
            
            @Override
            public boolean accept(File pathname) {
                return pathname.toString().endsWith(".exe");
            }
        });
        System.out.println("****************");
        for(File file:fileList3)
        {
            System.out.println(file.toString());
        }

     

    (4)列出指定文件夹下的所有文件及文件夹(包括子文件里面的内容)【使用递归】

        // 获取指定文件夹下的所有文件(包括子文件夹内部的内容)
        public static void test() {
            File file = new File("F:\tset");
            getdir(file);
        }
    
        public static void getdir(File file_s) {
            File[] fileLists = file_s.listFiles();
            for (File file_1 : fileLists) {
                System.out.println(file_1);
                if (file_1.isDirectory()) {
                    getdir(file_1);
                }
            }
        }
    
        public static void main(String[] args) {
            test();
        }

     

    (4)列出指定文件夹下的所有文件及文件夹(包括子文件里面的内容)【层次】

    /**
         * 列出指定目录下的所有文件夹及文件(带层次)
         * 
         * @param args
         */
        // 获取指定文件夹下的所有文件(包括子文件夹内部的内容)
        public static void display() {
            File file = new File("F:\tset");
            getdir(file,0);
        }
    
        public static void getdir(File file_s,int level) {
            level++;
            StringBuilder sb=new StringBuilder();
            sb.append("|--");
            for(int i=1;i<level;i++)
            {
                sb.insert(0,"   ");
            }
            File[] fileLists = file_s.listFiles();
            for (File file_1 : fileLists) {
                System.out.println(sb.toString()+file_1.getName());
                if (file_1.isDirectory()) {
                    getdir(file_1,level);
                    
                }
            }
        }
    
        public static void main(String[] args) {
            display();
        }


    (5)删除文件及其内容

    /**
     * 删除文件及其内容
     * @author Administrator
     *
     */
    public class Demo5 {
        public static void deleteDir(File dir)
        {
            File[] fileList=dir.listFiles();
            for(File file : fileList)
            {
                //java无法访问隐藏的目录
                if(!file.isHidden()&&file.isDirectory())
                    deleteDir(file);
                else
                    System.out.println(file.delete());
            }
            System.out.println(dir.delete());
        }
    public static void main(String[] args) {
        File file=new File("F:\tset");
        deleteDir(file);
        
        
    }
    }

    (6)一个指定目录下的java文件的据对路径保存在一个txt中

    /**
     * 将一个指定目录下的java文件的据对路径保存在一个txt中
     * @author Administrator
     *
     */
    public class Test1 {
    public static void main(String[] args) {
        BufferedWriter writer=null;
        try {
            //创建txt文件
            writer =new BufferedWriter(new FileWriter("ttt.txt"));
            //创建文件
            File dir=new File("F:\text");
            findFile(dir,writer);
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                if(writer!=null)
                writer.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        
    }
    
    private static void findFile(File dir ,BufferedWriter bw) throws IOException {
        File[] fileList=dir.listFiles();
        for(File f : fileList)
        {
            if(!f.isHidden() && f.isDirectory())
            {
                findFile(f,bw);
            }
            else if(f.isAbsolute()){
                bw.write(f.getAbsolutePath());
                bw.newLine();
            }
        }
    }
    }







  • 相关阅读:
    md5() 加密password,数据库字段长度要够(eg:varchar(30)),丢失部分数据,导致登录不上
    PHP $_SERVER (eg:REMOTE_ADDR)
    u3000是全角空格的16进制Unicode编码。 xa0
    Javascript验证Textarea中是否有值/javascript验证select是否为空(是否选择)
    /[u4e00-u9fa5]/汉字的正则匹配
    mysql_error() mysql_errno() 错误代码1064
    javascript正则表达式验证身份证
    javascript与php中的正则表达式
    停课集训 12.1
    bzoj1227 组合数学+bit
  • 原文地址:https://www.cnblogs.com/excellencesy/p/9192256.html
Copyright © 2011-2022 走看看