io流(学习笔记01)--File知识点

前置知识(file和io):

file代表文件本身,可以获得文件本身的详细详细和文件类型,可以操作文件创建和删除。

io流:可以处理文件里面的内容进行读取的存储。

file

flie创建对象-(定位文件夹内存在的对象)

new file 是定位文件的位置,而不是创建文件!!!

创建方式一
java 复制代码
 File f1 = new File("D:\\student\\ab.txt");
//可以使用反斜杠但是要两个
创建方式二
java 复制代码
File f2 = new File("D:/student/ab.txt");
//正斜杠只用写一个就可以
创建方式三
java 复制代码
File f2 = new File("D:" + File.separator + "student" + File.separator + "ab.txt");
//可以使用" + File.separator + "代替\\或/,这个方法会根据系统给的/或\\来取对应的斜杠
不带盘符创建

则会在java文件中开始寻找(相对路径)

java 复制代码
File f3 = new File("studentwork\\src\\a.txt");
//如果文件在java模块内,可以使用绝对路径,也可以使用相对路径(没有盘符路径)(推荐相对路径)
带盘符创建

绝对路径

java 复制代码
File f3 = new File("D:\\studentwork\\src\\a.txt");

注意

  1. 定位的路径可以是虚假的,那么返回字节大小的时候会是0
java 复制代码
File f3 = new File("D:\\student");//file对象可以指定不存在的路径
  1. 如果要判断定位的路径是否存在文件夹or文件时,可以使用 f3.exists();
java 复制代码
f3.exists();//有则是ture,没有就是false。
  1. 想要查看文件的大小,可以使用 f3.length();

注意:f3.length();是获取文件夹自身的大小,而不是文件夹内部所有文件的大小。如果f3是文件则是文件内部的大小。

java 复制代码
f3.length();

File 常用方法

判断文件类型,获取文件信息

复制代码
//创建文件对象
java 复制代码
 File file1 = new File("D:\\桌面\\学习资料\\io\\a.txt");//文件
 File file2 = new File("D:\\桌面\\学习资料\\io\\b");//文件夹
复制代码
//1.判断当前文件对象,对应的文件路径是否存在,存在返回true
java 复制代码
//public boolean exists()
    System.out.println(file1.exists());
    System.out.println(file2.exists());
复制代码
//2.判断当前文件对象指代的是否是文件,是文件返回true,反之
java 复制代码
//public boolean isFile()
    System.out.println(file1.isFile());
    System.out.println(file2.isFile());
复制代码
//3.判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
java 复制代码
//public boolean isDirectory()
     System.out.println(file1.isDirectory());
     System.out.println(file2.isDirectory());
复制代码
//4.获取文件的名称(包含后缀)
java 复制代码
//public String getName()
    System.out.println(file1.getName());
    System.out.println(file2.getName());
复制代码
//5.获取文件的大小,返回字节个数
java 复制代码
//public long length()
    System.out.println(file1.length());
    System.out.println(file2.length());
复制代码
//6.获取文件的最后修改时间。
java 复制代码
//public long lastModified()
    long time1 = file1.lastModified();
    long time2 = file2.lastModified();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
    System.out.println(simpleDateFormat.format(time1));
    System.out.println(simpleDateFormat.format(time2));
复制代码
//7.获取创建文件对象时,使用的路径
java 复制代码
//public string getPath()
    System.out.println(file1.getPath());
    System.out.println(file2.getPath());
复制代码
//8.获取绝对路径
java 复制代码
//public String getAbsolutePath()
    System.out.println(file1.getAbsolutePath());
    System.out.println(file2.getAbsolutePath());

创建文件,删除文件

复制代码
//创建一个新的空的文件
java 复制代码
//public boolean createNewFile()
    //1.先定义一个不存在的文件地址
    File file1 = new File("D:\\桌面\\学习资料\\io\\c.txt");
    //2.使用createNewFile方法创建文件,如果地址为空则创建成功-ture,否则为false
    System.out.println(file1.createNewFile());
复制代码
//创建一级文件夹    
java 复制代码
//public boolean mkdir()
    //1.先定义一个不存在的文件地址
    File file2 = new File("D:\\桌面\\学习资料\\io\\aa");
    //2.使用mkdir方法创建文件,如果地址为空则创建成功-ture,否则为false
    System.out.println(file2.mkdir());
复制代码
//可以创建多级文件夹
java 复制代码
//public boolean mkdirs()
    File file3 = new File("D:\\桌面\\学习资料\\io\\aaa\\vvv\\ccc");
    System.out.println(file3.mkdirs());
复制代码
//删除文件,空文件夹
java 复制代码
//public boolean delete()
    File file1 = new File("D:\\桌面\\学习资料\\io\\c.txt");
    System.out.println(file1.delete());
//注意:delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站.

遍历文件夹

复制代码
//获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
java 复制代码
//public string[] list()
    File file = new File("D:\\桌面\\学习资料\\io");
    String[] list = file.list();
//list内储存的是这个文件地址内的所有文件名称。
    for (String a:list) {
    //打印所有文件名称
    System.out.println(a);
        }
复制代码
​
//获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
java 复制代码
//public File[] listFiles()
    File file = new File("D:\\桌面\\学习资料\\io");
    File[] files = file.listFiles();
//files内储存的是这个文件地址内的所有文件的信息(不止文件名称)
    for (File a:files) {
    //打印所有文件名称
    System.out.println(a.getName());
        }
复制代码
使用listFiles的注意事项
  1. 当主调是文件,或者路径不存在时,返回null

  2. 当主调是空文件夹时,返回一个长度为0的数组

  3. 当主调是一个有内容的文件夹时,将里面所有一级文件和文件夹的路径放在File数组中返回

  4. 当主调是一个文件夹,且里面有隐藏文件时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件

  5. 当主调是一个文件夹,但是没有权限访问该文件夹时,返回null

相关推荐
Scott9999HH3 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
腻害兔3 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社4 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海4 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖5 小时前
JDK 26 新特性详解
java·开发语言
马优晨5 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区7 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大8 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai8 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
维天说8 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json