new File()

Java File类详解
首先 File 类是对文件系统的映射不是硬盘上真实的文件
所以 new File("xxx.xxx") 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件

如果需要创建文件需要以下操作:
判断映射的文件是否真实存在 file.exists() //true存在 false不存在
如果存在即可直接操作, 否则需要调用 file.createNewFile() 创建真实文件
但是以上方式只会适用创建文件本身,不包括父文件的创建(如果父文件不存在)
所以一般需要对父文件存在与否作判断
File parent = file.getParentFile() // 获取父文件
if( !parent.exists() ) parent.mkdirs(); //创建所有父文件夹

转载于:https://www.cnblogs.com/thiaoqueen/p/8778977.html

### `new File` 的使用方法 在 Java 中,`new File` 用于创建一个 `File` 对象,它代表文件或目录的抽象路径名。`File` 类提供了多种构造方法,以下是一些常见的使用方式: #### 1. 根据路径名创建 `File` 对象 ```java import java.io.File; public class NewFileExample { public static void main(String[] args) { // 创建一个表示文件的 File 对象 File file = new File("C:\\temp\\test.txt"); // 创建一个表示目录的 File 对象 File directory = new File("C:\\temp"); } } ``` #### 2. 根据父路径和子路径创建 `File` 对象 ```java import java.io.File; public class NewFileWithParent { public static void main(String[] args) { String parent = "C:\\temp"; String child = "test.txt"; File file = new File(parent, child); } } ``` #### 3. 根据父 `File` 对象和子路径创建 `File` 对象 ```java import java.io.File; public class NewFileWithParentFile { public static void main(String[] args) { File parentDir = new File("C:\\temp"); String child = "test.txt"; File file = new File(parentDir, child); } } ``` ### `new File` 与 `createTempFile` 的对比 #### 1. 创建方式 - `new File`:只是创建一个 `File` 对象,代表文件或目录的抽象路径名,并不会实际创建文件或目录。要创建实际的文件,需要调用 `createNewFile()` 方法;要创建目录,需要调用 `mkdir()` 或 `mkdirs()` 方法。 ```java import java.io.File; import java.io.IOException; public class NewFileCreateExample { public static void main(String[] args) { File file = new File("C:\\temp\\test.txt"); try { boolean created = file.createNewFile(); if (created) { System.out.println("文件创建成功"); } else { System.out.println("文件已存在"); } } catch (IOException e) { e.printStackTrace(); } } } ``` - `createTempFile`:是 `File` 类的静态方法,会直接在指定目录(若未指定则使用系统默认临时目录)创建一个新的空文件,且文件名是唯一的。 ```java import java.io.File; import java.io.IOException; public class CreateTempFileExample { public static void main(String[] args) { try { File tempFile = File.createTempFile("temp", ".txt"); System.out.println("临时文件路径: " + tempFile.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } } ``` #### 2. 文件名 - `new File`:文件名由用户显式指定。 - `createTempFile`:文件名由系统根据指定的前缀和后缀生成,保证文件名的唯一性。 #### 3. 生命周期和清理 - `new File`:创建的文件需要手动调用 `delete()` 方法来删除。 ```java import java.io.File; public class DeleteFileExample { public static void main(String[] args) { File file = new File("C:\\temp\\test.txt"); if (file.exists()) { boolean deleted = file.delete(); if (deleted) { System.out.println("文件删除成功"); } else { System.out.println("文件删除失败"); } } } } ``` - `createTempFile`:可以调用 `deleteOnExit()` 方法,确保在 JVM 退出时自动删除临时文件。 ```java import java.io.File; import java.io.IOException; public class DeleteTempFileOnExitExample { public static void main(String[] args) { try { File tempFile = File.createTempFile("temp", ".txt"); tempFile.deleteOnExit(); System.out.println("临时文件路径: " + tempFile.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值