文件(File)

文章目录

1. 概念

从内存层面映射到物理层面,JVM关闭之后内存中的数据会消失,所以要将数据转化为相应的文件进行持久化存储;反之从物理映射到内存则是文件读取过程。

由于Java是面向对象的语言,所以每个文件或文件夹对应的则是File类的对象,File类只涉及文件创建、删除、重命名等操作,不能实现对文件内部读写,实现需要采用IO流完成,将File类对象传入IO流构造器中

路径分隔符与系统有关,Windows默认使用 “ \ ” ,UNIX和URL使用 “ / ”表示,由于Java程序支持跨平台运行,所以提供动态分隔符

2. 实例

/*
 * 1.构造器
 */

//指明相对、绝对路径,不指明的话在当前系统下的user.dir中存储
//双斜杠是因为单斜杠有转义的意思
File file = new File("E:\\test\\hello.txt");
System.out.println(file);

//动态分隔符,File类的静态常量 separator
String s = File.separator;
File file1 = new File("E:" + s + "test" + s + "he.txt");
System.out.println(file1);

//指定目录,文件名或文件夹名
File file2 = new File("E:\test","hi.txt");

//指定文件类型的路径,文件名
File path = new File("\"E:\\test\"");
File file3 = new File(path,"hi.txt");
/*
 * 2.常用方法
 */
File file = new File("E:\\test\\hello.txt");//绝对路径
File file1 = new File("hi.txt");//相对路径

System.out.println(file.getAbsolutePath() + "---" + file1.getAbsolutePath());//获取绝对路径
System.out.println(file.getPath() + "---" + file1.getPath());//获取路径
System.out.println(file.getName() + "---" + file1.getName());//获取名称
System.out.println(file.getParent() + "---" + file1.getParent());//获取上层文件目录
System.out.println(file.length() + "---" + file1.length());//获取文件长度
System.out.println(file.lastModified() + "---" + file1.lastModified());//获取最后修改时间

File path = new File("E:\\test");
String[] list = path.list();//展示下层目录中的文件或文件名,要求文件夹必须存在
for (String fileName : list) {
    System.out.println(fileName);
}

File[] files = path.listFiles();//以绝对路径方式展示
for (File f : files) {
    System.out.println(f);
}
File file = new File("E:\\test\\hello.txt");
File file1 = new File("hi.txt");
//更名并移动路径,要求源文件必须有,但移动到的路径下无新命名的重名文件
boolean renameTo = file.renameTo(file1);
System.out.println(renameTo);
File file = new File("E:\\test");
File file1 = new File("hi.txt");

System.out.println(file.isDirectory());//判断是否为文件夹
System.out.println(file.isFile());//判断是否是文件
System.out.println(file.exists());//判断是否存在
//判断是否可读、可写、可执行、隐藏
System.out.println(file.canRead() + "-" + file.canWrite() + "-" + file.canExecute()+"-"+file.isHidden());
        String path = "E:\\test\\a\\b";
        String name = path+File.separator+"test.txt";
        File filePath = new File(path);
        File fileName = new File(name);
        if (!filePath.exists()||!fileName.exists()){
            try {
             // filePath.mkdir();//只创建最后一层文件夹,如果上层文件夹不存在则执行失败
                filePath.mkdirs();//如果上层文件夹不存在一并进行创建
                fileName.createNewFile();//创建文件

                System.out.println("创建成功");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }else {
            System.out.println("删除成功");
            fileName.delete();//删除文件

        }
String path = "E:\\test";
File filePath = new File(path);
if (filePath.exists()) {
    for (String s : filePath.list()) {
        //判断后缀
        if (s.endsWith("jpg")) {
            System.out.println(s);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天宇龙腾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值