New File("")

Java开发中绝对与相对路径使用详解

----绝对路径

*注意:相对路径的起始处无斜杆"/";

例如:filepath="resource/train.txt";
而不是filepath="/resource/train.txt"; //error!

在Web开发中尽量使用绝对路径,前一段路径无论是用的Windows或Linux开发,都可以利用 ServletActionContext.getServletContext().getRealPath(path);  来获取!

简单来说就是 路径的拼接 来组成要读取文件的绝对路径

----相对路径

使用java project环境,使用java.io用相对路径读取文件的例子:
 *目录结构:
  DecisionTree
            |___src
                 |___com.decisiontree.SamplesReader.java
            |___resource
                 |___train.txt,test.txt
 *SamplesReader.java:
  String filepath="resource/train.txt";//注意filepath的内容;
  File file=new File(filepath);
  ……

### `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、付费专栏及课程。

余额充值