最新国产好看的视频,伊人天堂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)、使用場景與區(qū)別,需要的朋友可以參考下

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

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

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

相關(guān)文章

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

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

    這篇文章主要介紹了java?-jar指定spring配置文件的相關(guān)資料,通過示例講解了激活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)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Java編程Webservice指定超時(shí)時(shí)間代碼詳解

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

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

    Java之操作Redis案例講解

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

    在啟動后臺 jar包時(shí),使用指定的 application.yml操作

    這篇文章主要介紹了在啟動后臺 jar包時(shí),使用指定的 application.yml操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    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注解

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

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

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

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

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

最新評論

南江县| 宣恩县| 茌平县| 荃湾区| 义马市| 利辛县| 博白县| 天全县| 宝鸡市| 岳普湖县| 牡丹江市| 宝坻区| 巨鹿县| 惠安县| 马尔康县| 桓台县| 温泉县| 会宁县| 克什克腾旗| 抚宁县| 水富县| 冷水江市| 宜兰市| 余姚市| 偏关县| 卢氏县| 海原县| 丰城市| 延边| 宣恩县| 马边| 通州市| 昂仁县| 天台县| 大余县| 合江县| 朝阳市| 梧州市| 剑河县| 健康| 长春市|