网站首页 > java教程 正文
/**
* 测试File类
*/
public class TestFile {
public static void main(String[] args) {
System.out.println(System.getProperty("user.dir"));
//返回当前java项目的路径 返回String
File f1 = new File("C:/abc/def/a.txt");
//new File()传path路径传参给构造器 生成File对象 这里的路径不一定真实存在 目录通过/分割 也可以用\\ 一个\是转义符 \\代表\
File f2 = new File("C:/abc/def");
//File对象既可以指代任何种类的文件也可以指代目录 这里的路径是绝对路径
File f3 = new File("a.txt");
//路径没有从盘符开始 是相对路径 默认路径是user.dir
File f4 = new File(System.getProperty("user.dir"));
//将当前java项目的路径传参给构造器 f4指向当前项目目录
System.out.println(f1.exists()+"判断f1指代的文件或者路径是否存在 结果false ");
//.exists()方法无法分辨目标是目录还是文件 如果想查名为a.txt的文件夹是否存在 遇到有a.txt文件但没有a.txt文件夹时也会返回true
System.out.println(f1.isDirectory()+"判断f1是否为目录 结果false 如果路径invalid无效/不存在也会返回false");
System.out.println(f2.isFile()+"判断f2是否为文件 结果false 如果路径invalid无效/不存在也会返回false");
try {
f1.createNewFile();
//.createNewFile()创建f1所指的File "C:/abc/def/a.txt" 该方法throws IOException 需要try/catch处理或者throws抛出
//创建文件指的是a.txt 如果a.txt之前的路径或某一层路径不存在则抛出IOException f1指代的是a.txt 创建文件不负责创建中间路径
} catch (IOException e) {
throw new RuntimeException(e);
}
/*
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: 系统找不到指定的路径。
at TestFile.main(TestFile.java:20)
Caused by: java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1023)
at TestFile.main(TestFile.java:17)
RuntimeException运行时异常
(TestFile.java:20行) throw new RuntimeException(e); 运行时异常中止了进程
Exclusively唯一地 Native本地的
*/
boolean success = f2.mkdir();
//.mkdir() make directory 创建目录 "C:/abc/def" 创建目录指的是最后一层def目录 如果def之前的目录缺失或者某一层缺失则无法创建 返回false 如果创建成功返回true
//.mkdir()只负责创建指向的目录 不会创建过程中的目录 目录结构中有一个不存在则不会创建整个目录树
System.out.println(success+"返回false 因为中间路径 abc不存在");
success = f1.mkdirs();
//.mkdirs()创建目录 如果过程中目录缺失会一并创建 "C:/abc/def/a.txt" 使用创建目录的方法会将a.txt当做目录/文件夹的名字创建 同样返回boolean表示创建操作执行与否
System.out.println(success+"返回true 在C盘创建了 abc/def/a.txt/ 的目录");
f1.delete();
//删除文件/目录 执行后无法撤销 "C:/abc/def/a.txt" 只会删除a.txt 不会删除新建的abc/def/
try {
f1.createNewFile();
//有了中间目录 .createNewFile() 方法创建文件成功
} catch (IOException e) {
throw new RuntimeException(e);
}
System.out.println(f1.lastModified()+"最后修改时间 返回long 结果为1657629701563");
//modify修改 .lastModified 返回毫秒long类型 可以通过 new Date(f1.lastModified())转换成Date对象打印来显示修改日期
System.out.println(f1.getPath()+"得到路径 返回String 结果为C:\\abc\\def\\a.txt 路径包含f1指代的文件名/目录名");
System.out.println(f1.getName()+"得到文件名/目录名 结果为a.txt");
System.out.println(f1.length()+"得到文件大小 结果为0 创建了文件但是没有写入内容");
success = f2.delete();
//删除同样返回执行结果true/false
System.out.println(success+"结果为false 想删除C:/abc/def但是C:/abc/def/目录下存在文件a.txt 删除未执行");
f1.delete();
f2.delete();
//从末端往前依次删除 成功
try {
f2.createNewFile();
//C:/abc/def .createNewFile()将def当做文件来创建 def不再是目录
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
class TestFileCreate{
public static void main(String[] args) {
File f5 = new File("C:/abc/def/h/a.jpg");
File dir = f5.getParentFile();
//.getParentFile() 返回f5的父目录 f5是a.jpg 父目录是h/
System.out.println(dir.getPath()+"结果为C:\\abc\\def\\h");
boolean exist = f5.exists();
if (exist){
f5.delete();
//判断a.jpg是否存在 存在则删除
}else {
dir.mkdirs();
//方法中会判断目录是否存在,存在目录则返回false 不存在则创建父目录及目录树
//由于之前创建了def文件 .mkdirs()方法无法分辨文件和目录 在def文件下创建子目录h失败 删除def文件后可正常创建目录树
boolean success;
try {
success = f5.createNewFile();
//创建文件也会返回执行结果true或false
} catch (IOException e) {
throw new RuntimeException(e);
}
System.out.println(success+"结果为true");
f5.renameTo(new File("C:/abc/def/h/a.png"));
//.renameTo(File dest)重命名文件 需要传参File对象
}
}
}
猜你喜欢
- 2024-11-07 HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期
- 2024-11-07 Python 3 学习笔记:目录&文件处理(二)
- 2024-11-07 一次生产事故,动态磁盘删除卷分区丢失,数据恢复案例实战
- 2024-11-07 【每日一学】Java CRUD操作大揭秘:学会创建、读取、更新和删除
- 2024-11-07 java实现对zip文件的压缩(java实现zip解压缩)
- 2024-11-07 一个骚命令防止你的文件被误删除(一个骚命令防止你的文件被误删除了怎么办)
- 2024-11-07 深入理解Java内存与垃圾回收调优(java内存机制和垃圾回收算法)
- 2024-11-07 Java之路-File类(java file类)
- 2024-11-07 Java使用aspose删除pdf中不需要的图片
- 2024-11-07 把Python程序用jython编译为java的jar包,几行代码
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)