当前位置: 首页 > article >正文

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

前置知识(file和io):

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

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

file

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

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

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

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

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

绝对路径

File f3 = new File("D:\\studentwork\\src\\a.txt");

注意

  1. 定位的路径可以是虚假的,那么返回字节大小的时候会是0

File f3 = new File("D:\\student");//file对象可以指定不存在的路径
  1. 如果要判断定位的路径是否存在文件夹or文件时,可以使用 f3.exists();

f3.exists();//有则是ture,没有就是false。
  1. 想要查看文件的大小,可以使用 f3.length();

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

f3.length();

File 常用方法

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

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

创建文件,删除文件

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

遍历文件夹

//获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
//public string[] list()
    File file = new File("D:\\桌面\\学习资料\\io");
    String[] list = file.list();
//list内储存的是这个文件地址内的所有文件名称。
    for (String a:list) {
    //打印所有文件名称
    System.out.println(a);
        }
​
//获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
//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


http://www.kler.cn/news/323046.html

相关文章:

  • Qt常用快捷键
  • 数据结构:串 及串的模式匹配(KMP)
  • 视觉无障碍 | 成都爱尔眼科公益助力重获清晰便利独居人生
  • 阿里rtc旁路推流TypeScript版NODE运行
  • 从入门到精通:计算机视觉学习路线与实战项目推荐
  • ROS与无人驾驶学习笔记(零)——问题汇总
  • Linux基础命令kill详解
  • JBOSS中间件漏洞复现
  • STM32 RTC实时时钟学习总结
  • WordPress精选文章如何添加侧边栏和页面?
  • 计算物理精解【8】-计算原理精解【5】
  • 如何在ChatGPT的帮助下,使用“逻辑回归”技巧完成论文写作?
  • sql server 版本补丁更新
  • Superset二次开发之Git篇git fetch 异常信息汇总
  • 【深度学习基础模型】Variational Autoencoders (VAE) 详细理解并附实现代码。
  • 【基础知识】Go中的同步机制
  • 基于yolov8的辣椒缺陷检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • STM32G431RBT6 VREF+与VDDA引脚
  • 计算机性能指标之MIPS
  • 极狐GitLab 17.4 重点功能解读【九】
  • Windows安全日志7关键事件ID分析
  • 95分App引领绿色消费新潮流,闲置物品焕发新生机
  • 【JS】函数柯里化
  • 「数组」离散化 / Luogu B3694(C++)
  • 畅阅读微信小程序
  • RHCS认证-Linux(RHel9)-Ansible
  • 代码随想录Day 58|拓扑排序、dijkstra算法精讲,题目:软件构建、参加科学大会
  • Linux操作系统中MongoDB
  • 前端开发之代理模式
  • Cilium + ebpf 系列文章- (六)Cilium-BGP与分发-EXTERNAL-IP