最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java文件操作之創(chuàng)建常規(guī)文件與臨時(shí)文件

 更新時(shí)間:2026年05月05日 08:58:52   作者:Cache技術(shù)分享  
這篇文章主要介紹了Java NNIO.中的Files.createFile()與Files.createTempFile()方法,用于創(chuàng)建常規(guī)文件和臨時(shí)文件,總結(jié)了兩種方法的特點(diǎn)、使用場(chǎng)景與區(qū)別,需要的朋友可以參考下

1. 創(chuàng)建常規(guī)文件createFile()

Java NIO.2 中,你可以用 Files.createFile(Path, FileAttribute<?>...) 來(lái)創(chuàng)建一個(gè)空文件。

  • 特點(diǎn)
    • 如果文件已存在 → 拋出 FileAlreadyExistsException(避免覆蓋,保證安全性 ?)。
    • 支持 一次性原子操作:檢查文件是否存在 + 創(chuàng)建文件 → 防止并發(fā)或惡意代碼插入。
    • 可以指定文件的 初始屬性(例如 POSIX 文件權(quán)限)。

示例:創(chuàng)建一個(gè)新文件(默認(rèn)屬性)

import java.nio.file.*;
import java.io.IOException;

public class CreateFileDemo {
    public static void main(String[] args) {
        Path file = Paths.get("example.txt");
        try {
            Files.createFile(file);
            System.out.println("文件創(chuàng)建成功: " + file.toAbsolutePath());
        } catch (FileAlreadyExistsException e) {
            System.err.println("文件已存在: " + file);
        } catch (IOException e) {
            System.err.println("創(chuàng)建文件失敗: " + e.getMessage());
        }
    }
}

運(yùn)行結(jié)果(文件不存在時(shí)):

文件創(chuàng)建成功: /path/to/example.txt

如果文件已存在:

文件已存在: example.txt

2. 創(chuàng)建臨時(shí)文件createTempFile()

有時(shí)候我們需要一個(gè) 臨時(shí)文件(例如寫緩存、處理臨時(shí)數(shù)據(jù)、測(cè)試用文件),這時(shí)就用 Files.createTempFile()。

  • 方法重載
    1. createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>...) → 允許指定目錄、文件前綴、后綴。
    2. createTempFile(String prefix, String suffix, FileAttribute<?>...) → 使用默認(rèn)的 臨時(shí)文件目錄(不同系統(tǒng)目錄不同,比如 Linux 通常是 /tmp/)。
  • 文件命名規(guī)則: 系統(tǒng)會(huì)自動(dòng)在文件名里加上一個(gè) 隨機(jī)數(shù),保證唯一性。

示例:創(chuàng)建臨時(shí)文件(默認(rèn)目錄)

import java.nio.file.*;
import java.io.IOException;

public class TempFileDemo {
    public static void main(String[] args) {
        try {
            Path tempFile = Files.createTempFile("myapp_", ".tmp");
            System.out.println("臨時(shí)文件已創(chuàng)建: " + tempFile.toAbsolutePath());
        } catch (IOException e) {
            System.err.println("創(chuàng)建臨時(shí)文件失敗: " + e.getMessage());
        }
    }
}

運(yùn)行結(jié)果(Linux 下可能是):

臨時(shí)文件已創(chuàng)建: /tmp/myapp_1234567890.tmp

Windows 下可能是:

臨時(shí)文件已創(chuàng)建: C:\Users\yaoxin\AppData\Local\Temp\myapp_987654321.tmp

總結(jié)

  1. 對(duì)比 createFile()createTempFile()
    • createFile() → 需要指定路徑,文件名固定,如果存在會(huì)報(bào)錯(cuò)。
    • createTempFile() → 自動(dòng)生成不重復(fù)的文件名,適合做臨時(shí)數(shù)據(jù)存儲(chǔ)。
  2. 安全性
    • createFile()原子操作 避免了“檢查-再創(chuàng)建”中可能被惡意程序插入的漏洞。
    • 臨時(shí)文件常用于多線程/多進(jìn)程場(chǎng)景,避免命名沖突。
  3. 實(shí)際應(yīng)用場(chǎng)景
    • createFile() → 初始化配置文件、日志文件、導(dǎo)出文件等。
    • createTempFile() → 大數(shù)據(jù)處理中間文件、Web 服務(wù)的緩存文件、測(cè)試時(shí)的臨時(shí)文件。

以上就是Java文件操作之創(chuàng)建常規(guī)文件與臨時(shí)文件的詳細(xì)內(nèi)容,更多關(guān)于Java創(chuàng)建常規(guī)文件與臨時(shí)文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java?-jar指定spring配置文件完整示例

    java?-jar指定spring配置文件完整示例

    這篇文章主要介紹了java?-jar指定spring配置文件的相關(guān)資料,通過(guò)示例講解了激活dev profile、設(shè)置外部配置路徑、直接指定配置文件名,需要的朋友可以參考下
    2025-06-06
  • SpringBoot實(shí)現(xiàn)多數(shù)據(jù)源配置的示例詳解

    SpringBoot實(shí)現(xiàn)多數(shù)據(jù)源配置的示例詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot實(shí)現(xiàn)多數(shù)據(jù)源配置的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Java編程Webservice指定超時(shí)時(shí)間代碼詳解

    Java編程Webservice指定超時(shí)時(shí)間代碼詳解

    這篇文章主要介紹了Java編程Webservice指定超時(shí)時(shí)間代碼詳解,簡(jiǎn)單介紹了webservice,然后分享了通過(guò)使用JDK對(duì)Webservice的支持進(jìn)行Webservice調(diào)用實(shí)現(xiàn)指定超時(shí)時(shí)間完整示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • Java之操作Redis案例講解

    Java之操作Redis案例講解

    這篇文章主要介紹了Java之操作Redis案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 在啟動(dòng)后臺(tái) jar包時(shí),使用指定的 application.yml操作

    在啟動(dòng)后臺(tái) jar包時(shí),使用指定的 application.yml操作

    這篇文章主要介紹了在啟動(dòng)后臺(tái) jar包時(shí),使用指定的 application.yml操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Spring5源碼解析之Spring中的異步和計(jì)劃任務(wù)

    Spring5源碼解析之Spring中的異步和計(jì)劃任務(wù)

    本篇文章主要介紹了Spring5源碼解析之Spring中的異步和計(jì)劃任務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-10-10
  • Spring自定義注解實(shí)現(xiàn)接口版本管理

    Spring自定義注解實(shí)現(xiàn)接口版本管理

    這篇文章主要介紹了Spring自定義注解實(shí)現(xiàn)接口版本管理,RequestMappingHandlerMapping類是與 @RequestMapping相關(guān)的,它定義映射的規(guī)則,即滿足怎樣的條件則映射到那個(gè)接口上,需要的朋友可以參考下
    2023-11-11
  • Java工具類之@RequestMapping注解

    Java工具類之@RequestMapping注解

    今天帶大家來(lái)學(xué)習(xí)Java工具類,文中對(duì)注解@RequestMapping作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 詳解springboot?springsecuroty中的注銷和權(quán)限控制問(wèn)題

    詳解springboot?springsecuroty中的注銷和權(quán)限控制問(wèn)題

    這篇文章主要介紹了springboot-springsecuroty?注銷和權(quán)限控制,賬戶注銷需要在SecurityConfig中加入開(kāi)啟注銷功能的代碼,權(quán)限控制要導(dǎo)入springsecurity和thymeleaf的整合依賴,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-03-03
  • SpringBoot中@Data注解的深度解析與實(shí)戰(zhàn)應(yīng)用

    SpringBoot中@Data注解的深度解析與實(shí)戰(zhàn)應(yīng)用

    @Data是Lombok庫(kù)提供的一個(gè)核心注解,它通過(guò)簡(jiǎn)化Java開(kāi)發(fā)中常見(jiàn)的樣板代碼來(lái)顯著提高開(kāi)發(fā)效率,下面小編就為大家詳細(xì)介紹一下@Data注解的詳細(xì)使用吧
    2025-10-10

最新評(píng)論

大新县| 新建县| 军事| 临泉县| 兰考县| 乌审旗| 松江区| 即墨市| 贵州省| 玛多县| 巴东县| 盐山县| 洞头县| 衡东县| 宜州市| 墨竹工卡县| 陇南市| 上虞市| 苍山县| 怀宁县| 义乌市| 大港区| 高淳县| 吕梁市| 沁水县| 通渭县| 济阳县| 石台县| 通州市| 孝义市| 都江堰市| 沾益县| 湘阴县| 富裕县| 辛集市| 洪江市| 临城县| 大渡口区| 和田市| 鱼台县| 丰宁|