• 021.1 IO流——File类


    ########################################
    IO流:
        IO:用于处理设备上的数据的技术。设备:内存,硬盘,光盘
        流:系统资源,Windows系统本身就可以操作的设备。各种语言只是使用系统平台的这个资源。并对外提供了各种语言自己的操作功能,这些功能最终调用的是系统资源,使用完资源一定要记住:释放。

    File类直接有了分隔符:File.separator
    "c:"+File.separator+"a.txt"

    ################################################文件基本方法

    File file = new File("F:"+File.separator+"eclipse_javaCode"+File.separator+
            "day21"+File.separator+"src"+File.separator+"day21"+File.separator+
            "shangxin.txt");
    String file_name = file.getName();  //获取文件名
    System.out.println(file_name);     //shangxin.txt
    long file_size = file.length();
    System.out.println(file_size);
    String file_parent_path = file.getParent();    //获取父目录的路径
    System.out.println(file_parent_path);
    
    ###########
    String file_path = file.getAbsolutePath();   //获取绝对路径
    System.out.println(file_path);    //F:eclipse_javaCodeday21srcday21shangxin.txt
    
    long lc = file.lastModified();        //获取最后一次修改的时间
    Date date = new Date();
    DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
    String lc_str = df.format(date);
    System.out.println(lc_str);     //2018年2月23日 星期五 下午09时59分40秒 CST
    boolean b = file.isHidden();     //判断文件是否隐藏
    System.out.println(b);
    
    b = file.createNewFile();        //创建文件,文件存在创建失败,没有该盘创建失败
    System.out.println(b);
    
    b = file.delete();   //删除文件,不走回收站
    
    file = new File("ai"+File.separator+"xdaq");
    b = file.mkdirs();        //创建多级目录
    System.out.println(b);
    
    b = file.delete();       //删除文件夹要注意,文件夹里面必须保证文件夹里面没有东西。
    System.out.println(b);
    
    file = new File("e:");
    long space = file.getFreeSpace();       //获取剩余空间大小
    System.out.println(space);
    View Code

    ##################################获取文件里面的文件名称列表和文件对象

    File dir = new File("e:");
    String[] names = dir.list();         //获取文件名称
    if(names == null)
        return ;
    for(String i:names){
        System.out.println(i);
    }
    
    
    ###
    File dir = new File("e:");
    File[] names = dir.listFiles();              //获取文件对象
    if(names == null)
        return ;
    for(File i:names){
        System.out.println(i);
    
    }

    #####################文件过滤器
    用于文件文件过滤,如果是学习这个,需要分析一下下面的代码,这样才能更好的使用
    重点:新建自己的过滤器类,继承FileFilter,实现accept方法,方法放回的为真就是不过滤的。

    public class MyFileFilter implements java.io.FileFilter          //以docx结尾
    {
        public boolean accept(File pathname)
        {
            return pathname.getName().endsWith("docx");
        }
    
    }
    MyFileFilter.java
    public class FileFilterByEnding implements FileFilter        //在创建对象的时候确认以什么结尾。
    {
        private String suffix;
        public FileFilterByEnding(String suffix) {
            super();
            this.suffix = suffix;
        }
        @Override
        public boolean accept(File pathname)
        {
            return pathname.getName().endsWith(suffix);
        }
    }
    FileFilterByEnding.java
    public class FilterByContains implements FilenameFilter         //在创建对象的时候确认包含什么字符
    {
        private String content;
        
        public FilterByContains(String content) {
            super();
            this.content = content;
        }
    
        @Override
        public boolean accept(File dir, String name)
        {
            return name.contains(content);
        }
    }
    FilterByContains.java
    public class FilterBySuffix implements FilenameFilter         //还是在创建对象的时候,确定以什么结尾
    {
        private String ending;
        
        public FilterBySuffix(String ending) {
            super();
            this.ending = ending;
        }
    
        @Override
        public boolean accept(File dir, String name)
        {
            //dir 代表被过滤的目录,遍历过程中文件或者文件夹的名字
            return name.endsWith(ending);
        }
    }
    FilterBySuffix.java
    File dir = new File("e:");  //获取文件夹里面的文件,返回文件数组形式
    FilenameFilter filter = new FilterBySuffix("副");   
    filter = new FilterByContains("a");
    String[] names = dir.list(filter);        //这里有个调用
    for(String i:names){
        System.out.println(i);
    
    }
    主函数调用

    ####################获取全部文件内容

    public class GetAllFile
    {
        public static void main(String[] args)
        {
            File f = new File("F:"+File.separator+"E-drive-78234"+File.separator+"study");
            getAllFile(f);
        }
        public static void getAllFile(File file){
            File[] files = file.listFiles();    //获取文件数组
            for(File f:files){
                if(f.isDirectory()){        //如果是文件夹,则继续获取文件夹里面的数组
                    getAllFile(f);
                }
                else{
                    System.out.println(f);
                }
            }
        }
    }

    ##########删除目录

    public class ShanWenJianJia
    {
        public static void main(String[] args)
        {
            File file = new File("f:"+File.separator+"eclipse_javaCode"+File.separator+
                    "day21"+File.separator+"day19");
            System.out.println(file);
            ShanChu(file);
        }
        public static void ShanChu(File f){
            File[] fs = f.listFiles();
            if(fs==null){
                return;
            }
            for(File file:fs){
                if(file.isDirectory()){
                    ShanChu(file);
                }
                else{
                    System.out.println(file+":"+file.delete());
                }
            }
            System.out.println(f+":"+f.delete());
        }
    }
  • 相关阅读:
    吃货联盟项目
    字串符笔记
    带有参的方法
    js:自动亮起100盏灯
    JS字面量创建方式的优缺点
    为什么说对象字面量赋值比new Object()高效?
    javascript 字面量
    vue学习(一)、Vue.js简介
    Redis(二):c#连接Redis
    Redis(一):centos下安装。
  • 原文地址:https://www.cnblogs.com/-nbloser/p/8887947.html
Copyright © 2020-2023  润新知