java io&File类

1 io主要内容

在这里插入图片描述
在这里插入图片描述

2.File类

在这里插入图片描述

import java.io.File;
import java.io.IOException;

public class Tes {
    public static void main(String[] args) {
        File f =new File("D:/Test/abc/tt.txt");//这个时候f就是tt.txt
        File f1=new File("D:/Text","abc/tt.txt");//这时f1也是tt.txt不过大都使用第一种写法
        File f2=new File("D:Text"+ File.separator+"abc/tt.txt");//也可以用File.separator作分隔符
        File f3=new File("D:/Test/abc");

        File f5=new File("src/b/Tes.java");//相对路径来创建file对象

        System.out.println(f.getName());//获取文件名,获取当前文件夹或文件名名称
        System.out.println(f3.getName());

        System.out.println(f5.getPath());//获取当前路径,就是new File时候写的路径
        System.out.println(f5.getAbsolutePath());//获取当前文件的绝对路径

        System.out.println(f5);
        System.out.println(f5.getAbsoluteFile());//返回一个用当前文件的绝对路径构建的file对象

        System.out.println(f5.getParent());//返回当前文件或文件夹的父级路径

        f.renameTo(new File("D:/Test/abc/tt1.txt"));//给文件或文件夹重命名

        File f6=new File("D:/Test/abc/tt1.txt");//判断文件或者文件夹是否存在存在返回true不存在返回false
        System.out.println(f6.exists());

        File f7=new File("D:/Test/abc/tt1.txt");
        System.out.println(f7.canWrite());//判断文件是否可读或可写
        System.out.println(f7.canRead());

        System.out.println(f7.isFile());//判断当前的file对象是不是文件
        System.out.println(f7.isDirectory());//判断当前对象是不是文件夹

        System.out.println(f7.lastModified());//获取文件的最后修改时间,返回的是一个毫秒数
        System.out.println(f7.length());//返回文件的长度单位是字节

        File f8=new File("D:/Test/abc/tt2.txt");
        System.out.println(f8.exists());
//        if(!f8.exists()){
//            try {
//                f8.createNewFile();
//            }catch(IOException e){
//                e.printStackTrace();
//            }
//        }
        f8.delete();//删除文件或文件夹

        File f9=new File("D:/Test/abc/cc");
        f9.mkdir();//创建目录(文件夹)单级

        File f10=new File("D:/Test/abc/a/b/c");
        f10.mkdirs();//创建多级目录

		//创建新的文件
        File f12=new File("D:\\Test\\abc\\tt2.txt");
        try {
            f12.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }

        File f11=new File("D:/Test");
        String fl[]=f11.list();//返回的是当前文件夹的子集的名称,包括目录和文件
        for(String s:fl){
            System.out.println(s);
        }

        File fs[]=f11.listFiles();//返回当前文件夹的子集的file对象,包括目录和文件
        for(File ff:fs){
            System.out.println(ff);
        }
        
    }
}

运行:
tt.txt
abc
src\b\Tes.java
E:\IDEAproject\src\b\Tes.java
src\b\Tes.java
E:\IDEAproject\src\b\Tes.java
src\b
true
true
true
true
false
1584584814367
5
false
abc
D:\Test\abc


2.5File类递归遍历文件
import java.io.File;
import java.io.IOException;

public class Tes {
    public static void main(String[] args) {
      //遍历D盘test下的文件夹
//        File f=new File("D:");
//        File fs[]=f.listFiles();
//        for(File ff:fs){
//            System.out.println(ff);
        File f=new File("D:/Test");
        new Tes().test(f);
    }

        //遍历D盘下的test文件,把test文件夹下所有目录与文件全部遍历出来,不论层级有多深全部遍历
        //这个需要使用递归的方式来实现
    //使用递归遍历文件
    public void test(File file){
        if(file.isFile()){
            System.out.println(file.getAbsoluteFile()+"是文件");
        }else{
            System.out.println(file.getAbsoluteFile()+"是文件夹");
            //如果是文件夹,这个文件夹里就可能有子文件夹或文件
            File fs[]=file.listFiles();//获取当前文件夹下的子文件夹或文件夹的file对象
            if(fs!=null&&fs.length>0) {
                for (File ff : fs) {
//                    if(ff.isFile()){
//                        System.out.println(ff.getAbsoluteFile()+"是文件");
//                    }else{
//                        System.out.println(ff.getAbsoluteFile()+"是文件夹");
//                        File fs1[]=file.listFiles();
//                        if(fs1!=null&&fs1.length>0){
//                            for(File ff1:fs1);
//                        }
                    test(ff);//递归

                    }
                }
            }
        }


    }


运行结果:
D:\Test是文件夹
D:\Test\abc是文件夹
D:\Test\abc\a是文件夹
D:\Test\abc\a\b是文件夹
D:\Test\abc\a\b\c是文件夹
D:\Test\abc\cc是文件夹
D:\Test\abc\tt1.txt是文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值