更新時間:2022-10-17 11:03:06 來源:動力節(jié)點 瀏覽8533次
在 Java 中,使用預定義的類和包可以輕松創(chuàng)建文件。有三種方法可以創(chuàng)建文件。
使用 File.createNewFile() 方法
使用 FileOutputStream 類
使用 File.createFile() 方法
File.createNewFile()是屬于java.io包的 File 類的一個方法。它不接受任何論據(jù)。該方法會自動創(chuàng)建一個新的空文件。該方法返回一個布爾值:
如果文件創(chuàng)建成功,則為 true。
false,如果文件已經(jīng)存在。
當我們初始化 File 類對象時,我們提供文件名,然后我們可以調(diào)用 File 類的 createNewFile() 方法在 Java 中創(chuàng)建一個新文件。
如果發(fā)生 I/O 錯誤,F(xiàn)ile.createNewFile() 方法將拋出 java.io.IOException。如果安全管理器存在并且其 SecurityManager.checkWriter(java.lang.String) 方法拒絕對文件的寫訪問,它也會拋出 SecurityException。該方法的簽名是:
公共布爾 createNewFile() 拋出 IOException
我們可以將文件名或絕對路徑或相對路徑作為參數(shù)傳遞給 File 類對象。對于非絕對路徑,F(xiàn)ile 對象嘗試在當前目錄中定位文件。
例子
以下示例創(chuàng)建一個新的空文本文件。第一次運行成功創(chuàng)建了 music.txt,而第二次運行失敗。我們可以通過僅更改文件擴展名來創(chuàng)建任何類型的文件。
導入 java.io.File;
導入 java.io.IOException;
公共類 CreateFileExample1
{
公共靜態(tài)無效 主要(字符串 [] 參數(shù))
{
文件 file = new File( "C:\\demo\\music.txt" ); //初始化文件對象并將路徑作為參數(shù)傳遞
布爾 結果;
嘗試
{
結果 = file.createNewFile(); //創(chuàng)建一個新文件
if (result) // 測試是否成功創(chuàng)建了一個新文件
{
System.out.println( "文件創(chuàng)建" +file.getCanonicalPath()); //返回路徑字符串
}
別的
{
System.out.println( "文件已經(jīng)存在于位置:" +file.getCanonicalPath());
}
}
捕獲 (IOException e)
{
e.printStackTrace(); //如果有異常打印
}
}
}
輸出
當文件不存在時。
當文件已經(jīng)存在時。
文件輸出流將數(shù)據(jù)寫入文件。Java FileOutputStream 類也提供對文件的支持。它屬于 java.io 包。它將數(shù)據(jù)存儲為字節(jié)。當我們需要將一些數(shù)據(jù)寫入創(chuàng)建的文件時,我們使用 FileOutputStream 類。FileOutputStream 類提供了一個構造函數(shù)來創(chuàng)建文件。構造函數(shù)的簽名是:
公共 FileOutputStream(字符串名稱, 布爾 附加) 拋出 FileNotFoundException
參數(shù)
name:是文件名
append:如果為真,字節(jié)將被寫入文件的末尾,而不是開頭。
例子
在以下示例中,我們使用 FileOutputStream 創(chuàng)建了一個文件。
導入 java.io.FileOutputStream;
導入 java.util.Scanner;
公共類 CreateFileExample
{
公共靜態(tài)無效 主(字符串參數(shù) [])
{
嘗試
{
掃描儀 sc=新的 掃描儀(System.in); //Scanner 類的對象
System.out.print( "請輸入文件名:" );
字符串名稱=sc.nextLine(); //存放文件名的變量名
FileOutputStream fos= new FileOutputStream(name, true ); // true 附加模式
System.out.print( "輸入文件內(nèi)容:" );
字符串 str=sc.nextLine()+ "\n" ; //str 存儲我們輸入的字符串
字節(jié)[] b= str.getBytes(); //將字符串轉(zhuǎn)換為字節(jié)
fos.write(b); //將字節(jié)寫入文件
fos.close(); //關閉文件
System.out.println( "文件已保存。" );
}
捕獲(異常 e)
{
e.printStackTrace();
}
}
}
輸出
File.createFile() 是屬于java.nio.file包的 File 類的一個方法。它還提供對文件的支持。nio 包是面向緩沖區(qū)的。createFile() 方法也用于創(chuàng)建一個新的空文件。使用此方法時,我們不需要關閉資源。這是一個優(yōu)勢。該方法的簽名是:
公共靜態(tài) 路徑 createFile(Path, Attribute) 拋出 IOException
路徑:文件的路徑。
屬性:文件屬性的可選列表。
該方法返回文件。
以下示例還創(chuàng)建了一個新的空文件。我們使用 Paths 類 (java.nio.file.Paths) 中名為 Paths.get() 的靜態(tài)方法創(chuàng)建一個 Path 實例。請注意以下聲明:
路徑 path = Paths.get("C:\\demo\\javaprogram.txt");
在上面的行中,Path 是一個接口,Paths 是一個類。兩者屬于同一個包。Paths.get() 方法創(chuàng)建路徑實例。
導入 java.io.IOException;
導入 java.nio.file.*;
公共類 CreateFileExample3
{
公共靜態(tài)無效 主要(字符串 [] 參數(shù))
{
路徑路徑 = Paths.get( "C:\\demo\\javaprogram.txt" ); //創(chuàng)建路徑實例
嘗試
{
路徑 p= Files.createFile(path); //在指定位置創(chuàng)建文件
System.out.println( "路徑創(chuàng)建的文件:" +p);
}
捕獲 (IOException e)
{
e.printStackTrace();
}
}
}
輸出