JavaSE之 I/O流(一) File

简介: JavaSE之 I/O流(一) File

File

文件类

File 类:代表操作系统的文件对象,是用来操作操作系统的文件对象的,删除文件,获取文件信息,创建文件(文件夹),广义来说操作系统认为文件包含(文件和文件夹)

File 类构造器:

  • public File(String pathname):根据路径获取文件对象
  • public File(String parent , String child):根据父路径和文件名称获取文件对象

File 类创建文件对象的格式:

  • File f = new File("绝对路径/相对路径");
  • 绝对路径:从磁盘的的盘符一路走到目的位置的路径
  • 绝对路径依赖具体的环境,一旦脱离环境,代码可能出错
  • 一般是定位某个操作系统中的某个文件对象
  • 相对路径:不带盘符的(重点)
  • 默认是直接相对到工程目录下寻找文件的。
  • 相对路径只能用于寻找工程下的文件,可以跨平台
  • File f = new File("文件对象/文件夹对象") 广义来说:文件是包含文件和文件夹的
 public class FileDemo{
     public static void main(String[] args) {
         // 1.创建文件对象:使用绝对路径
         // 文件路径分隔符:
         //      -- a.使用正斜杠: /
         //      -- b.使用反斜杠: \
         //      -- c.使用分隔符API:File.separator
         //File f1 = new File("D:"+File.separator+"it"+File.separator
         //+"图片资源"+File.separator+"beautiful.jpg");
         File f1 = new File("D:\seazean\图片资源\beautiful.jpg");
         System.out.println(f1.length()); // 获取文件的大小,字节大小
 ​
         // 2.创建文件对象:使用相对路径
         File f2 = new File("Day09Demo/src/dlei.txt");
         System.out.println(f2.length());
 ​
         // 3.创建文件对象:代表文件夹。
         File f3 = new File("D:\it\图片资源");
         System.out.println(f3.exists());// 判断路径是否存在!!
     }
 }

常用API

常用方法
方法 说明
String getAbsolutePath() 返回此 File 的绝对路径名字符串
String getPath() 获取创建文件对象的时候用的路径
String getName() 返回由此 File 表示的文件或目录的名称
long length() 返回由此 File 表示的文件的长度(大小)
long length(FileFilter filter) 文件过滤器
 public class FileDemo {
     public static void main(String[] args) {
         // 1.绝对路径创建一个文件对象
         File f1 = new File("E:/demo/test.jpg");
         // a.获取它的绝对路径。
         System.out.println(f1.getAbsolutePath());
         // b.获取文件定义的时候使用的路径。
         System.out.println(f1.getPath());
         // c.获取文件的名称:带后缀。
         System.out.println(f1.getName());
         // d.获取文件的大小:字节个数。
         System.out.println(f1.length());
         System.out.println("------------------------");
 ​
         // 2.相对路径
         File f2 = new File("demo/src/test.txt");
         // a.获取它的绝对路径。
         System.out.println(f2.getAbsolutePath());
         // b.获取文件定义的时候使用的路径。
         System.out.println(f2.getPath());
         // c.获取文件的名称:带后缀。
         System.out.println(f2.getName());
         // d.获取文件的大小:字节个数。
         System.out.println(f2.length());
     }
 }
 ​
判断方法

方法列表:

  • boolean exists():此 File 表示的文件或目录是否实际存在
  • boolean isDirectory():此 File 表示的是否为目录
  • boolean isFile():此 File 表示的是否为文件
 File f = new File("Demo/src/test.txt");
 // a.判断文件路径是否存在
 System.out.println(f.exists()); // true
 // b.判断文件对象是否是文件,是文件返回true ,反之
 System.out.println(f.isFile()); // true
 // c.判断文件对象是否是文件夹,是文件夹返回true ,反之
 System.out.println(f.isDirectory()); // false
创建删除

方法列表:

  • boolean createNewFile():当且仅当具有该名称的文件尚不存在时, 创建一个新的空文件
  • boolean delete():删除由此 File 表示的文件或目录(只能删除空目录)
  • boolean mkdir():创建由此 File 表示的目录(只能创建一级目录)
  • boolean mkdirs():可以创建多级目录(建议使用)

遍历目录

  • public String[] list():获取当前目录下所有的一级文件名称到一个字符串数组中去返回
  • public File[] listFiles():获取当前目录下所有的一级文件对象到一个文件对象数组中去返回(重点
  • public long lastModified:返回此抽象路径名表示的文件上次修改的时间
 public class FileDemo {
     public static void main(String[] args) {
         File dir = new File("D:\demo");
         // a.获取当前目录对象下的全部一级文件名称到一个字符串数组返回。
         String[] names = dir.list();
         for (String name : names) {
             System.out.println(name);
         }
         // b.获取当前目录对象下的全部一级文件对象到一个File类型的数组返回。
         File[] files = dir.listFiles();
         for (File file : files) {
             System.out.println(file.getAbsolutePath());
         }
 ​
         // c
         File f1 = new File("D:\demo\beautiful.jpg");
         long time = f1.lastModified(); // 最后修改时间!
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         System.out.println(sdf.format(time));
     }
 }

文件搜索

递归实现文件搜索(非规律递归)

  • 定义一个方法用于做搜索
  • 进入方法中进行业务搜索分析
目录
相关文章
|
10月前
|
数据采集 开发框架 .NET
告别爬取困境:用Playwright完美抓取复杂动态网页
Playwright:动态网页爬虫新利器。跨浏览器支持、智能等待、网络拦截,轻松应对异步加载与反爬机制。实战案例+高效技巧,解锁复杂页面数据抓取。
1324 0
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
8926 4
|
数据采集 JSON API
Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势
小红书作为社交电商的重要平台,其笔记评论蕴含丰富市场洞察与用户反馈。本文介绍的小红书笔记评论API,可获取指定笔记的评论详情(如内容、点赞数等),支持分页与身份认证。开发者可通过HTTP请求提取数据,以JSON格式返回。附Python调用示例代码,帮助快速上手分析用户互动数据,优化品牌策略与用户体验。
2626 3
|
数据采集 存储 监控
实现自动化数据抓取:使用Node.js操控鼠标点击与位置坐标
本文介绍了如何使用Node.js和Puppeteer实现自动化数据抓取,特别是针对新闻网站“澎湃新闻”。通过设置代理IP、User-Agent和Cookie,提高爬虫的效率和隐蔽性,避免被网站封锁。代码示例展示了如何模拟鼠标点击、键盘输入等操作,抓取并整理新闻数据,适用于需要规避IP限制和突破频率限制的场景。
894 10
|
机器学习/深度学习 IDE 数据可视化
还在老一套?STM32使用新KEIL5的IDE,全新开发模式RTE介绍及使用
还在老一套?STM32使用新KEIL5的IDE,全新开发模式RTE介绍及使用
|
Ubuntu Linux 数据安全/隐私保护
|
Web App开发 安全 网络协议
SSL VPN和 IPsec VPN的区别
在本文中,我们将解释 IPsec 和 SSL VPN 协议之间的区别,以及如何选择合适的协议来满足客户的需求。
4995 0
SSL VPN和 IPsec VPN的区别
|
存储 缓存 自然语言处理
小刚带你深入浅出理解Lua语言
前言这篇文章并不是针对某个知识点深入剖析,而是聚焦在Lua语言的关键知识点覆盖和关键使用问题列举描述。能够让学习者对Lua整体有个认识(使用一门新的语言不仅仅在用的时候适应它,而是知道怎么善于使用它),同时也可以作为一个工具文档在Lua中遇到具体问题的时候能从这里索引到相应的知识点和Lua的一些原理,得到启发。 1、Lua语言的特点简单的说Lua语言是一个可扩展的嵌入型的脚本语言。它具有以下的特点
小刚带你深入浅出理解Lua语言
|
8天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1789 117
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考

热门文章

最新文章