欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

021.1 IO流——File类

程序员文章站 2022-05-05 16:02:05
########################################IO流: IO:用于处理设备上的数据的技术。设备:内存,硬盘,光盘 流:系统资源,Windows系统本身就可以操作的设备。各种语言只是使用系统平台的这个资源。并对外提供了各种语言自己的操作功能,这些功能最终调用的是系统资 ......

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

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

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

021.1 IO流——File类
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_javaCode\day21\src\day21\shangxin.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

021.1 IO流——File类

 

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

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方法,方法放回的为真就是不过滤的。

021.1 IO流——File类
public class MyFileFilter implements java.io.FileFilter          //以docx结尾
{
    public boolean accept(File pathname)
    {
        return pathname.getName().endsWith("docx");
    }

}
MyFileFilter.java
021.1 IO流——File类
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
021.1 IO流——File类
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
021.1 IO流——File类
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
021.1 IO流——File类
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());
    }
}