当前位置: 移动技术网 > IT编程>开发语言>Java > 021.1 IO流——File类

021.1 IO流——File类

2018年04月20日  | 移动技术网IT编程  | 我要评论

########################################
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_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

 

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

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());
    }
}

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网