java 文件

java 文件File是java.io包的类
构造方法有四种,这里介绍三种

File file = new File("绝对路径或相对路径")
//绝对路径是相对于硬盘的,每台计算机的都不同
//相对路径,有参照目标的路径如src
File file = new File("父类路径字符串","子类路径字符串")
File file = new File("父类抽象路径名","子类路径字符串")

常用File方法
file.createNewFile() 当且仅当不存在具有此抽象名路径指定的文件时,会创建新的空文件
file.isFile() 判断当前FIle对象所表示的是否为一个文件
file.length() 返回此抽象路径名表示的文件所占字节数
file.exists() 判断文件是否存在
file.delete() 删除此抽象路径名指向的文件或目录,但目录不可以有任何子项
file.isDirectory() 判断当前file对象是否为目录
file.mkdir() 创建此抽象路径名指定目录
file.mkdirs() 创建此抽象路径名指定的多级目录
file.getName() 返回此抽象路径名表示的类或名称 同 file.toString
getAbsoluteFile() 返回此抽象路径名的绝对路径抽象名。
getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
getParentFile() 返回此抽象路径名父目录的抽象路径名
getParent() 返回此抽象路径名父目录的路径名字符串
file.list() 返回此抽象路径名表示的文件目录的字符串数组
file.listFile() 返回此抽象路径名表示的文件目录的抽象路径名数组,这有当层
异常
Throwable
Error 运行环境错误
Exception
try catch finally
throw
throws 方法的声明上修饰,可能抛出某种异常
重写throws
当父类上宣告了throws 某些异常
子类重新定义可以不处理异常,处理父类的部分异常,分类异常的子类异常
父类未throws,子类不可throws
RuntimeException
异常可分为可检测异常和不可检测异常
File文件的遍历

public static void main(String[] args) {
    File file = getFile();
    long length = getDirlengthByFiile(file);
    System.out.println(length);
        removeFile(file);



    }
    public static File getFile() {
        Scanner scanner = new Scanner(System.in);
        while(true) {
            System.out.println("输入文件路径");
            String path = scanner.nextLine();

            File file = new File(path);
            if(!file.exists())
                System.out.println("路径不存在");
            else if (file.isFile()) {
                System.out.println("文件");
            }else {
                return file;
            }
        }
    }
    public static long getDirlengthByFiile(File file) {
        //定义变量,保存文件夹大小
        long sum = 0;
        File[] files = file.listFiles();
        for (File subFile : files) {
            if(subFile.isFile()) {
                sum = sum + subFile.length();
            }else {
                sum = sum + getDirlengthByFiile(subFile);
            }
        }
        return sum;
    }
    public static void removeFile(File file) {
        File[] files = file.listFiles();
        for (File subfile : files) {
            if(subfile.isFile()) {
                subfile.delete();
            }else {
                removeFile(subfile);
            }
        }
    }

按层级遍历目录

public static void printFile(File file, int level) {
        //遍历文件夹
        String string = "";
        for (int i = 0; i < level; i++) {
            string = string + "------";
        }
        File[] files = file.listFiles();
        for (File subfile : files) {
            //是文件就打印
            if(subfile.isFile()) {
                System.out.println(string + subfile.getName());
            }else {
                //不是文件就是文件夹
                System.out.println(string + subfile.getName());
                printFile(subfile, level+1);

            }

        }
    }

文件使用listFiles() 可已加入过滤器,达到筛选的目的
FileFileter(File pathname)
FilenameFileter(File dir, String name)
class MyFileFilter implements FileFilter{
//按什么规则 来过滤文件
//返回false 过滤掉
//返回true 保留
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
if(pathname.isDirectory()) {
return false;
}
return true;
}
}
FIleOutputStream 文件字节输出流 write()
FileInputStream 文件字节输入流 read()
stream.write(100);
//无文件创建,有文件覆盖
byte[] b = {65,66,67,68};
stream.write(b);
stream.write(b,2,1);
File file = new File(“/Users/lanou/Desktop/test/a/hi.txt”);
FileInputStream stream = new FileInputStream(file);
byte[] b = new byte[2];
int i = stream.read(b);//读取时会把读出来的内容放入字节数组中存储
System.out.println(i);
System.out.println(new String(b));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值