File类与Path类的一些注意事项

首先介绍一下Files类

Files类:

Files 类是 Java NIO (New Input/Output) 中提供的一组静态方法,用于文件和目录的操作。

  • 创建文件和目录

       createFile(Path path): 创建一个新的文件。
       createDirectory(Path path): 创建一个新的目录。
       createDirectories(Path path): 创建一个新的目录以及所有不存在的父目录。

  • 读取文件内容

      readAllBytes(Path path): 读取文件的所有字节。
      readAllLines(Path path): 读取文件的所有行,返回一个 List<String>。
      newBufferedReader(Path path): 以 BufferedReader 形式读取文件。

  • 复制文件、删除文件、写入文件等等

        可以发现Files类的方法的参数都是Path路径对象,这主要是因为在Java NIO包下,也同时开发了Path与Paths这两个类,所以这里用Path对象去做参数是合理的,并且path对象相比路径字符串有着以下几个优点:

        这里值得注意的是,我们在利用File类(java.io.File )创建文件对象时,通常将路径字符串参数传入构造函数,即new File (“/test/test.txt”)这样的形式,而非传入Path对象,这主要是因为一下几点原因:

(1)File类(java.io.File )它在 Java 1.0 版本中就已经存在。在那个时候,Java 还没有 Path 类。File 类主要通过字符串来表示路径。这也是为什么 File 类的构造函数接受的是字符串参数,而不是 Path 对象的最主要原因。

(2)然而,从 Java 7 开始,Java 引入了新的文件 I/O API,即 java.nio.file 包,其中包含了 Path 类,用于替代 File 类,提供更强大、更灵活的文件和路径处理功能。Path 类是由 java.nio.file.Paths 工具类创建的,提供了更现代和跨平台的路径操作方式。

(3)尽管如此,Java 仍然保留了 File 类的字符串构造函数,以确保向后兼容性。开发者可以继续使用他们熟悉的 API,而不会因为引入新的类而破坏现有代码。


Path与File之间的转换:

   虽然 File 类的构造函数不直接接受 Path 对象,但可以很容易地将 Path 对象转换为 File 对象,方法是使用 Path 类的 toFile() 方法,同时File类也提供toPath()方法,用法如下:

String filePath = "/home/test/aaa.txt";

File file = new File(filePath);

File file1 = Paths.get(filePath).toFile;

Path path = file.toPath();

Unity中的File是C#提供的一个用于文件存储和读取的工具。使用File,我们可以实现对文件的读取、写入、复制和删除等操作。通过File,我们可以读取文件中的文本内容,并将其打印出来。使用File的ReadAllText方法,我们可以一次性将整个文件的内容读取到一个字符串中。例如,在Unity中,我们可以使用以下代码来读取文件内容并打印出来: string file_path = "C:/Users/Admin/Desktop/log.txt"; string content = File.ReadAllText(file_path); Debug.Log(content); 上述代码中,file_path表示要读取的文件路径,content表示读取到的文件内容。通过调用File的ReadAllText方法并传入文件路径,我们可以将文件的内容读取到content变量中,并通过Debug.Log方法打印出来。这样,我们就可以在Unity中使用File来读取文件内容了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Unity学习笔记--File.ReadAllLines和File.ReadAllText的使用以及注意事项(一定要看到最后!!!)](https://blog.csdn.net/qq_52855744/article/details/128702422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [UnityIK人体骨骼反向动力学系统插件 Final IK 2.2](https://download.csdn.net/download/mayzhengxi/88262273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值