一、概念
1.File位置?
答:在包java.io.File下,代表操作系统的文件对象(文件、文件夹)
2.File类可以干嘛?
答:可以:创建文件、文件夹、定位文件、删除、获取文本本身信息等功能操作。不可以读取文件本身内容。
3.如果要读取文件中的数据怎么办?
答:用IO流:可以对硬盘中的数据进行读写
4.绝对路径和相对路径
绝对路径:从盘符开始
相对路径:不带盘符。默认直接到当前工程下的目录寻找文件
二、例子展示
例子:
1.绝对路径和相对路径的各种查看方法
- package bao;
- import java.io.File;
- import java.text.SimpleDateFormat;
-
- public class Test {
- public static void main(String[] args) {
- //绝对路径(指在本电脑上面能用的路径)
- //创建对象。储存地址文件的属性-安全
- File f1 = new File("D:\\图片\\壁纸\\巴蛇.jpg");
-
- //1.获取文件绝对路径
- System.out.println(f1.getAbsolutePath());//D:\图片\壁纸\巴蛇.jpg
- //2.获取文件定义使用的路径
- System.out.println(f1.getPath());//D:\图片\壁纸\巴蛇.jpg
- //3.获取文件的名称,带后缀
- System.out.println(f1.getName());//巴蛇.jpg
- //4.获取文件的字节大小
- System.out.println(f1.length());//4409079
- //5.获取文件的最后修改时间
- long time = f1.lastModified();
- System.out.println(time);//1658643818000
- //上面时间看不懂,那就修改成能看懂的格式
- System.out.println("最后修改的时间为"+new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(time));//最后修改的时间为2022/07/24 14:23:38
- //6.判断是不是文件
- System.out.println(f1.isFile());//true
- //7.判断是不是文件夹
- System.out.println(f1.isDirectory());//false
- //8.测试此抽象路径的File是否存在
- System.out.println(f1.exists());//false
-
- System.out.println("=====================================================================================");
-
- //相对路径
- //创建对象。储存地址:1.idea文件 2.Copy Path 3.选择带有地址的第一个 4.复制进去后,模块前面的全删了
- //这里相对路径返回来结果如果是1970等异常的话,就在new创建文件这里添加上盘符就正常了
- File f2 = new File("D:\\java_base\\SE\\src\\QQ");//本应是SE\src\QQ,为了显示时间和字节正常才这样
-
- //1.获取文件绝对路径
- System.out.println(f2.getAbsolutePath());//D:\java_base\SE\src\QQ
- //2.获取文件定义使用的相对路径
- System.out.println(f2.getPath());//D:\java_base\SE\src\QQ
- //3.获取文件的名称,带后缀
- System.out.println(f2.getName());//QQ
- //4.获取文件的字节大小
- System.out.println(f2.length());//18
- //5.获取文件的最后修改时间
- long time1 = f2.lastModified();
- System.out.println(time1);//1662306438640
- //上面时间看不懂,那就修改成能看懂的格式
- System.out.println("最后修改的时间为"+new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(time1));//最后修改的时间为2022/09/04 23:47:18
- //6.判断是不是文件
- System.out.println(f2.isFile());//true
- //7.判断是不是文件夹
- System.out.println(f2.isDirectory());//false
- //8.测试此抽象路径的File是否存在
- System.out.println(f2.exists());//true
- }
- }
运行结果:
D:\图片\壁纸\巴蛇.jpg
D:\图片\壁纸\巴蛇.jpg
巴蛇.jpg
4409079
1658643818000
最后修改的时间为2022/07/24 14:23:38
true
false
true
=====================================================================================
D:\java_base\SE\src\QQ
D:\java_base\SE\src\QQ
18
1662306438640
最后修改的时间为2022/09/04 23:47:18
true
false
true
2.创建文件和删除文件
- package bao;
-
- import java.io.File;
- import java.io.IOException;
-
- public class Test {
- public static void main(String[] args) throws IOException {
- //1.创建新文件,成功返回true。不成功返回false的对象,出现异常抛出就好alt+回车键
- File f = new File("D:\\java_base\\SE\\src\\bao\\大哥.txt");
- System.out.println(f.createNewFile());//true
- //2.创建一级目录,只能创建一级目录
- File f2 = new File("D:\\新建文件夹");
- System.out.println(f2.mkdir());//true。成功建立起来本地文件夹
- //3.创建多级目录
- File f3 = new File("D:\\新建文件夹2\\aa\\bb\\cc");
- System.out.println(f3.mkdirs());//true。成功建立起来本地文件夹
- //4.删除文件,本地绝对文件和相对文件都可以删除,强力删除,回收站里面都不剩,好东西
- //不能删除非空文件夹
- File f4 = new File("D:\\java_base\\SE\\src\\bao\\大哥.txt");
- System.out.println(f4.delete());//true
- }
- }
运行结果:
true
true
true
true
3.遍历方法(打标:在里面的遍历文件夹很像爬虫可以获取数据)
- package bao;
-
- import java.io.File;
- public class Test {
- public static void main(String[] args) {
- //绝对路径
-
- //new一个要使用的文件夹对象
- File f = new File("D:\\图片");
- //1.简单遍历。获得当前文件夹下的子文件
- // 文件数据赋值给集合列表
- String[] name = f.list();
- for (String names : name) {
- System.out.println(names);
- }
- //2.获取一级文件的全部绝对路径(常用)
- File[] f2 = f.listFiles();
- for (File file : f2) {
- System.out.println(file);
- }
- }
- }
运行结果:
风景
头像
D:\图片\风景
D:\图片\头像
listFiles注意事项:
1.当调用者不存在时,返回null
2.当调用者是一个文件时,返回null
3.当调用者是一个空文件夹时,返回一个长度为0的数组
4.当调用者是一个隐藏的文件夹时,里面的隐藏内容也会被调用出来(这个可以查看隐藏文件夹中内容了)
5.需要权限的文件夹,返回null