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

java加强 -File

File类的对象可以代表文件/文件夹,并可以调用其提供的方法对象文件进行操作。

File对象既可以代表文件,也可以代表文件夹。

创建File对象,获取某个文件的信息

语法:

File 对象名 = new File("需要访问文件的绝对路径(如果在当前工程下可以用相对路径)")

判断是否是文件

可以用对象名.isFile()来判断当前路径下的东西是文件还是文件夹,是文件返回true,不是文件返回false

判断文件是否存在

可以用对象名.exists()来判断绝对路径所代表的文件在此位置是否存在,存在返回true,不存在返回false。

创建文件

如果绝对路径(相对路径)所代表的文件不存在,可以用对象名.creatNewFile来创造对应的文件

创建文件夹

语法:

如果绝对路径所代表的东西不存在,需要一个文件夹,可以用对象名.mkdir()来在对应位置创造对应文件夹。(只能创建一级文件夹,若是需要在文件夹里套文件夹即多级文件夹,需要用mkdirs)

可以用对象名.listFiles();获取当前路径下的所有一级文件对象,并使用文件夹数组接收,即File[ ]类型。

示例

package filedemo;import java.io.File;public class FileDemo1 {public static void main(String[] args) throws Exception {//目标:创建File创建对象代表文件(文件/目录),搞清楚其提供的对文件进行操作的方法。//1、创建File对象,去获取某个文件的信息File f1 = new File("E:\\蓝桥杯\\【模板】01背包.cpp");System.out.println(f1.length());System.out.println(f1.getName());System.out.println(f1.isFile());System.out.println(f1.isDirectory());//2、使用相对路径定位文件对象//只要带盘符的都称为绝对路径//相对路径:不带盘符,默认是到idea工程下直接寻找文件的,一般用来找工程下的项目文件。File f2 = new File("day03-file-io\\src\\filedemo\\CodeBlossom");System.out.println(f2.length());//3、创建对象代表不存在的文件路径File f3 = new File("E:\\text.txt");System.out.println(f3.exists());System.out.println(f3.createNewFile());//4、创建对象代表不存在的文件夹路径File f4 = new File("E:\\text"); //只能创建一级文件夹System.out.println(f4.mkdir());File f5 = new File("E:\\aaa\\bbbb\\cccc");//System.out.println(f5.mkdir());     //多级文件夹,失败//创建多级用mkdirsSystem.out.println(f5.mkdirs());//5、创建File对象代表存在的文件,然后删除它File f6 = new File("E:\\text");System.out.println(f6.delete());    //删除文件//6、创建File对象代表存在的文件夹,然后删除它File f7 = new File("E:\\aaa\\bbbb\\cccc");System.out.println(f7.delete());    //删除文件夹(只能删空文件夹),删除后的文件不进入回收站//7、获取某个目录下的全部一级文件名称File f9 = new File("E:\\垃圾");String[] names = f9.list();for (String name:names){System.out.println(name);}File[] files = f9.listFiles();      //获取一级文件对象,存到数组里for (File file:files){System.out.println(file.getAbsoluteFile());     //获取文件绝对路径}}
}

创建File对象的注意事项

package filedemo;import java.io.File;
import java.util.Arrays;public class FileDemo2 {public static void main(String[] args) {//目标:掌握File遍历一级文件对象的操作//主调是文件或者路径不存在时,返回nullFile dir = new File("E:\\蓝桥杯\\【模板】01背包.cpp");//主调是空文件夹,返回长度为0的数组File dir2 = new File("E:\\aaa\\bbbb");//主调是一个有内容的文件夹,把里面所有一级文件和文件夹的路径放在File数组返回//主调是一个文件夹且文件夹有隐藏文件时,将里面的所有文件和文件夹的路径放在File数组中返回,包含隐藏文件//主调是一个文件夹,但没有权限访问该文件夹时,返回nullFile [] files = dir2.listFiles();//System.out.println(files);System.out.println(Arrays.toString(files));}
}

项目实战:利用listFiles()方法来寻找目录下的某一个文件

package filedemo;import java.io.File;public class FileSearchDemoText {public static void main(String[] args) {//目标:找出D:盘下steam.exe的位置try {File dir = new File("D:\\");searchFile(dir,"steam.exe");} catch (Exception e) {throw new RuntimeException(e);}}/*** 搜索文件* @param dir 搜索的目录* @param fileName 搜索的文件名称*/public static void searchFile(File dir,String fileName) throws Exception{//1、判断极端情况if (dir==null||!dir.exists()||dir.isFile()){return;//不搜索}//2、获取目录下的所有一级文件或者文件夹对象File[] files = dir.listFiles();//3、判断当前文件下是否存在一级文件对象,存在就遍历if(files!=null && files.length>0){//4、遍历一级文件对象for (File file :files){//5、判断此一级文件对象是不是文件if (file.isFile()){//6、判断文件名称是否和目标文件一致if(file.getName().equals(fileName)) {System.out.println("找到目标文件:"+file.getAbsolutePath());Runtime r = Runtime.getRuntime();r.exec(file.getAbsolutePath());}}else {//7、如果当前一级文件对象是文件夹,则继续递归调用searchFile(file,fileName);}}}}}

当找到对应exe文件时,用getRuntime()方法获取一个虚拟机对象(java内的虚拟机可以用于启动exe文件)然后用exec方法打开对应exe文件。

http://www.xdnf.cn/news/440281.html

相关文章:

  • MobiPDF:安卓设备上的专业PDF阅读与编辑工具
  • 【CustomPagination:基于Vue 3与Element Plus的高效二次封装分页器】
  • Spark的基础介绍
  • 性能比拼: Nginx vs. Envoy
  • AcroForm JavaScript Promise 对象应用示例: 异步加载PDF文件
  • YOLO v1:目标检测领域的革命性突破
  • 笔记本电脑打开网页很慢,一查ip地址网段不对怎么处理
  • DAX权威指南2:CALCULATE 与 CALCULATETABLE
  • Windows 环境下安装 Node 和 npm
  • 智能化双语LaTeX系统,分阶段系统性开发技术实现路径:目标是实现语义级编译和认知增强写作,推动跨文明知识表达
  • 【C++ / STL】封装红黑树实现map和set
  • 【LeetCode 热题 100】反转链表 / 回文链表 / 有序链表转换二叉搜索树 / LRU 缓存
  • 腾讯云-人脸核身+人脸识别教程
  • 榕壹云打车系统:基于Spring Boot+MySQL+UniApp的开源网约车解决方案
  • PCB设计实践(十七)PCB设计时11个维度分析双层板和四层板该如何抉择
  • python打卡day25
  • uniapp -- 验证码倒计时按钮组件
  • 数据安全与权限管控,如何实现双重保障?
  • 计算机网络:手机和基站之间是通过什么传递信息的?怎么保证的防衰减,抗干扰和私密安全的?
  • JT/T 808 通讯协议及数据格式解析
  • 【taro3 + vue3 + webpack4】在微信小程序中的请求封装及使用
  • 服务器被打了怎么应对
  • 微信小程序学习之搜索框
  • 查看当前 Python 环境及路径
  • hadoop中了解yarm
  • OpenCV进阶操作:人脸检测、微笑检测
  • OpenCV CUDA模块中逐元素操作------算术运算
  • 滑动窗口算法笔记
  • 【CSS】使用 CSS 绘制三角形
  • 阿里巴巴java开发手册