更新時(shí)間:2022-10-17 11:03:06 來源:動(dòng)力節(jié)點(diǎn) 瀏覽9031次
在 Java 中,使用預(yù)定義的類和包可以輕松創(chuàng)建文件。有三種方法可以創(chuàng)建文件。
使用 File.createNewFile() 方法
使用 FileOutputStream 類
使用 File.createFile() 方法
File.createNewFile()是屬于java.io包的 File 類的一個(gè)方法。它不接受任何論據(jù)。該方法會(huì)自動(dòng)創(chuàng)建一個(gè)新的空文件。該方法返回一個(gè)布爾值:
如果文件創(chuàng)建成功,則為 true。
false,如果文件已經(jīng)存在。
當(dāng)我們初始化 File 類對(duì)象時(shí),我們提供文件名,然后我們可以調(diào)用 File 類的 createNewFile() 方法在 Java 中創(chuàng)建一個(gè)新文件。
如果發(fā)生 I/O 錯(cuò)誤,F(xiàn)ile.createNewFile() 方法將拋出 java.io.IOException。如果安全管理器存在并且其 SecurityManager.checkWriter(java.lang.String) 方法拒絕對(duì)文件的寫訪問,它也會(huì)拋出 SecurityException。該方法的簽名是:
公共布爾 createNewFile() 拋出 IOException
我們可以將文件名或絕對(duì)路徑或相對(duì)路徑作為參數(shù)傳遞給 File 類對(duì)象。對(duì)于非絕對(duì)路徑,F(xiàn)ile 對(duì)象嘗試在當(dāng)前目錄中定位文件。
例子
以下示例創(chuàng)建一個(gè)新的空文本文件。第一次運(yùn)行成功創(chuàng)建了 music.txt,而第二次運(yùn)行失敗。我們可以通過僅更改文件擴(kuò)展名來創(chuàng)建任何類型的文件。
導(dǎo)入 java.io.File;
導(dǎo)入 java.io.IOException;
公共類 CreateFileExample1
{
公共靜態(tài)無效 主要(字符串 [] 參數(shù))
{
文件 file = new File( "C:\\demo\\music.txt" ); //初始化文件對(duì)象并將路徑作為參數(shù)傳遞
布爾 結(jié)果;
嘗試
{
結(jié)果 = file.createNewFile(); //創(chuàng)建一個(gè)新文件
if (result) // 測(cè)試是否成功創(chuàng)建了一個(gè)新文件
{
System.out.println( "文件創(chuàng)建" +file.getCanonicalPath()); //返回路徑字符串
}
別的
{
System.out.println( "文件已經(jīng)存在于位置:" +file.getCanonicalPath());
}
}
捕獲 (IOException e)
{
e.printStackTrace(); //如果有異常打印
}
}
}
輸出
當(dāng)文件不存在時(shí)。

當(dāng)文件已經(jīng)存在時(shí)。

文件輸出流將數(shù)據(jù)寫入文件。Java FileOutputStream 類也提供對(duì)文件的支持。它屬于 java.io 包。它將數(shù)據(jù)存儲(chǔ)為字節(jié)。當(dāng)我們需要將一些數(shù)據(jù)寫入創(chuàng)建的文件時(shí),我們使用 FileOutputStream 類。FileOutputStream 類提供了一個(gè)構(gòu)造函數(shù)來創(chuàng)建文件。構(gòu)造函數(shù)的簽名是:
公共 FileOutputStream(字符串名稱, 布爾 附加) 拋出 FileNotFoundException
參數(shù)
name:是文件名
append:如果為真,字節(jié)將被寫入文件的末尾,而不是開頭。
例子
在以下示例中,我們使用 FileOutputStream 創(chuàng)建了一個(gè)文件。
導(dǎo)入 java.io.FileOutputStream;
導(dǎo)入 java.util.Scanner;
公共類 CreateFileExample
{
公共靜態(tài)無效 主(字符串參數(shù) [])
{
嘗試
{
掃描儀 sc=新的 掃描儀(System.in); //Scanner 類的對(duì)象
System.out.print( "請(qǐng)輸入文件名:" );
字符串名稱=sc.nextLine(); //存放文件名的變量名
FileOutputStream fos= new FileOutputStream(name, true ); // true 附加模式
System.out.print( "輸入文件內(nèi)容:" );
字符串 str=sc.nextLine()+ "\n" ; //str 存儲(chǔ)我們輸入的字符串
字節(jié)[] b= str.getBytes(); //將字符串轉(zhuǎn)換為字節(jié)
fos.write(b); //將字節(jié)寫入文件
fos.close(); //關(guān)閉文件
System.out.println( "文件已保存。" );
}
捕獲(異常 e)
{
e.printStackTrace();
}
}
}
輸出

File.createFile() 是屬于java.nio.file包的 File 類的一個(gè)方法。它還提供對(duì)文件的支持。nio 包是面向緩沖區(qū)的。createFile() 方法也用于創(chuàng)建一個(gè)新的空文件。使用此方法時(shí),我們不需要關(guān)閉資源。這是一個(gè)優(yōu)勢(shì)。該方法的簽名是:
公共靜態(tài) 路徑 createFile(Path, Attribute) 拋出 IOException
路徑:文件的路徑。
屬性:文件屬性的可選列表。
該方法返回文件。
以下示例還創(chuàng)建了一個(gè)新的空文件。我們使用 Paths 類 (java.nio.file.Paths) 中名為 Paths.get() 的靜態(tài)方法創(chuàng)建一個(gè) Path 實(shí)例。請(qǐng)注意以下聲明:
路徑 path = Paths.get("C:\\demo\\javaprogram.txt");
在上面的行中,Path 是一個(gè)接口,Paths 是一個(gè)類。兩者屬于同一個(gè)包。Paths.get() 方法創(chuàng)建路徑實(shí)例。
導(dǎo)入 java.io.IOException;
導(dǎo)入 java.nio.file.*;
公共類 CreateFileExample3
{
公共靜態(tài)無效 主要(字符串 [] 參數(shù))
{
路徑路徑 = Paths.get( "C:\\demo\\javaprogram.txt" ); //創(chuàng)建路徑實(shí)例
嘗試
{
路徑 p= Files.createFile(path); //在指定位置創(chuàng)建文件
System.out.println( "路徑創(chuàng)建的文件:" +p);
}
捕獲 (IOException e)
{
e.printStackTrace();
}
}
}
輸出

相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)