IO流3(File对象-构造函数&字段)

在这里插入图片描述
构造函数

//IO流(File对象-构造函数&字段)
//构造函数
public static void demo_1(){
    //可以将一个已存在或不存在的文件或目录封装成file对象
    File file = new File("F:/buf.txt");
    File f2 = new File("F://");
    File f3 = new File(f2,"F://buf.txt");
    File f4 = new File("c:/"+System.getProperty("file.separator")+"/abc//ab//a.txt");
    File f5 = new File("c:"+File.separator+"abc/ab/a.txt");//c:\abc\ab\a.txt
    System.out.println(f5);
}

1.获取

//File对象的常见方法
public static void function_demo(){
    //1.获取
    /**
     * 1.1获取文件名称
     * 1.2获取文件路径
     * 1.3获取文件大小
     * 1.4获取文件修改时间
     */
   
    File file = new File("F:/buf.txt");
    String name = file.getName();
    String path = file.getPath();
    String path_abs = file.getAbsolutePath();
    long size = file.getFreeSpace();
    long len = file.length();//文件大小,单位为字节
    long time = file.lastModified();
    Date date = new Date(time);
    DateFormat dateformat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
    String str_time = dateformat.format(date);//2021年3月9日 CST 下午7:40:36
    String parent = file.getParent();//F:\
    System.out.println(parent);
}

2.创建与删除

public static void creatAndDelete() throws IOException{
    //2.创建与删除
    /**
     * boolean
     */
    File file = new File("F:/buf.txt");
    /**
     * 和输出流不一样,如果文件不存在则创建,如果文件存在则不创建
     */
    //文件创建
    boolean b = file.createNewFile();
    System.out.println("b:"+b);
    //文件删除
    boolean d = file.delete();
    System.out.println("d:"+d);
    //创建目录
    File dir = new File("F:/adc");
    boolean di = dir.mkdir();
    boolean dd = dir.delete();
    System.out.println("di:"+di);
}

3.判断

public static void isDemo(){
    //3.判断
    File file = new File("F:/");
    boolean b = file.exists();//文件或目录是否存在
    System.out.println("b:"+b);
    System.out.println(file.isDirectory());//file是不是目录
    System.out.println(file.isFile());//file是不是文件
}

重命名

public static void reName(){
    //重命名
    File f1 = new File("F:/buf.txt");
    File f2 = new File("F:/buf1.txt");
    boolean b = f1.renameTo(f2);//将f1的名字改为f2的
    System.out.println(b);
}
public static void getDir(){
    //系统根目录和容量获取
    File[] files = File.listRoots();
    for(File file:files){
        System.out.println(file);
    }
    // C:\
    // D:\
    // E:\
    // F:\
    // G:\
    File file = new File("F:/");
    System.out.println(file.getFreeSpace());//298798497792
    System.out.println(file.getTotalSpace());//314571747328
    System.out.println(file.getUsableSpace());//298798497792可用于此虚拟机的字节数
}

获取目录内容

public static void getDirList(){
    //获取目录内容
    File file = new File("F:/");
    String[] file_names = file.list();//当前目录下的文件和文件夹名称,包含隐藏文件
    //调用list方法的file对象中封装的必须是目录。否则会发生NullPointerException
    //如果访问的是系统目录也会发生空指针异常
    //如果目录存在但是没有内容,会返回一个长度为0的数组
    for(String name:file_names){
        System.out.println(name);
    }
}

过滤器

class filterByTxt implements FilenameFilter{
    @Override
    public boolean accept(File dir, String name) {
        // TODO Auto-generated method stub
        System.out.println(name);
        return name.endsWith(".txt");
    }
}
class filterByHidden implements FileFilter{
    @Override
    public boolean accept(File pathname) {
        // TODO Auto-generated method stub
        return pathname.isHidden();
    }
}
class filterByName implements FilenameFilter{
    String name;
    filterByName(String name){
        this.name = name;
    }
    @Override
    public boolean accept(File dir,String name) {
        // TODO Auto-generated method stub
        // System.out.println(name);
        return name.endsWith(this.name);
    }
}
File dir = new File("F:/组会PPT/");
String[] file_names = dir.list(new filterByName(".pptx"));//过滤txt文件
// File[] file_hiden = dir.listFiles(new filterByHidden());//过滤隐藏文件
for(String f:file_names){
    System.out.println(f);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值