在本教程中,我們將借助示例學(xué)習(xí)Java File及其各種操作。
java.io包的File類用于對(duì)文件和目錄執(zhí)行各種操作。
還有一個(gè)名為的java.nio包,可用于處理文件。但是,在本教程中,我們將重點(diǎn)放在java.io包上。
文件是可用于存儲(chǔ)相關(guān)信息的命名位置。例如,
main.java是一個(gè)Java文件,其中包含有關(guān)Java程序的信息。
目錄是文件和子目錄的集合。目錄內(nèi)的目錄稱為子目錄。
要?jiǎng)?chuàng)建的對(duì)象File,我們需要先導(dǎo)入java.io.File包。導(dǎo)入包后,就可以創(chuàng)建文件對(duì)象。
//使用路徑創(chuàng)建File對(duì)象 File file = new File(String pathName);
在這里,我們創(chuàng)建了一個(gè)名為file的文件對(duì)象。該對(duì)象可用于處理文件和目錄。
注意:在Java中,創(chuàng)建文件對(duì)象并不意味著創(chuàng)建文件。相反,文件對(duì)象是文件或目錄路徑名的抽象表示(在括號(hào)中指定)。
操作方式 | 方法 | 包 |
---|---|---|
創(chuàng)建文件 | createNewFile() | java.io.File |
讀取文件 | read() | java.io.FileReader |
寫入文件 | write() | java.io.FileWriter |
刪除文件 | delete() | java.io.File |
要?jiǎng)?chuàng)建一個(gè)新文件,我們可以使用createNewFile()方法。它返回
true - 如果創(chuàng)建了一個(gè)新文件。
false - 如果文件已經(jīng)存在于指定位置。
//導(dǎo)入File類 import java.io.File; class Main { public static void main(String[] args) { //為當(dāng)前位置創(chuàng)建一個(gè)file對(duì)象 File file = new File("newFile.txt"); try { //嘗試基于該對(duì)象創(chuàng)建文件 boolean value = file.createNewFile(); if (value) { System.out.println("新文件已創(chuàng)建。"); } else { System.out.println("該文件已經(jīng)存在。"); } } catch(Exception e) { e.getStackTrace(); } } }
在上面的示例中,我們創(chuàng)建了一個(gè)名為file的文件對(duì)象。該文件對(duì)象與指定的文件路徑鏈接。
File file = new File("newFile.txt");
在這里,我們使用了文件對(duì)象來創(chuàng)建具有指定路徑的新文件。
如果newFile.txt在當(dāng)前位置不存在,那么將創(chuàng)建文件并顯示此消息。
新文件已創(chuàng)建。
但是,如果newFile.txt已經(jīng)存在,我們將看到此消息。
該文件已經(jīng)存在。
要從文件中讀取數(shù)據(jù),我們可以使用InputStream或Reader的子類。
假設(shè)我們有一個(gè)名為input.txt的文件,其中包含以下內(nèi)容。
www.soo66.com Java教程
現(xiàn)在,讓我們嘗試使用Java FileReader讀取文件。
// 導(dǎo)入 FileReader import java.io.FileReader; class Main { public static void main(String[] args) { char[] array = new char[100]; try { //使用FileReader創(chuàng)建閱讀器 FileReader input = new FileReader("input.txt"); //讀取字符 input.read(array); System.out.println("文件中的數(shù)據(jù):"); System.out.println(array); // 關(guān)閉 reader input.close(); } catch(Exception e) { e.getStackTrace(); } } }
輸出結(jié)果
文件中的數(shù)據(jù): www.soo66.com Java教程
在以上示例中,我們使用FileReader創(chuàng)建的名為input的對(duì)象?,F(xiàn)在,它已與input.txt文件鏈接。
FileReader input = new FileReader("input.txt");
要從input.txt文件中讀取數(shù)據(jù),我們使用了FileReader的read()方法。
要將數(shù)據(jù)寫入文件,我們可以使用OutputStream或Writer的子類。
//導(dǎo)入FileWriter類 import java.io.FileWriter; class Main { public static void main(String args[]) { String data = "This is the data in the output file"; try { //使用FileWriter創(chuàng)建一個(gè)Writer FileWriter output = new FileWriter("output.txt"); //將字符串寫入文件 output.write(data); System.out.println("數(shù)據(jù)被寫入文件。"); //關(guān)閉 writer output.close(); } catch (Exception e) { e.getStackTrace(); } } }
輸出結(jié)果
數(shù)據(jù)被寫入文件。
在上面的示例中,我們使用FileWriter類創(chuàng)建了writer 。寫入器與output.txt文件鏈接。
FileWriter output = new FileWriter("output.txt");
將數(shù)據(jù)寫入到文件中,我們使用的write()方法.
在這里,當(dāng)我們運(yùn)行程序時(shí),output.txt文件將填充以下內(nèi)容。
www.soo66.com Java教程
我們可以使用File類的delete()方法來刪除指定的文件或目錄。它返回
true - 如果文件被刪除。
false - 如果文件不存在。
注意:我們只能刪除空目錄。
import java.io.File; class Main { public static void main(String[] args) { //創(chuàng)建一個(gè)file對(duì)象 File file = new File("file.txt"); //刪除該文件 boolean value = file.delete(); if(value) { System.out.println("文件被刪除。"); } else { System.out.println("文件被刪除。"); } } }
輸出結(jié)果
文件被刪除。
在上面的示例中,我們創(chuàng)建了一個(gè)名為File的File對(duì)象。該文件現(xiàn)在包含有關(guān)指定文件的信息。
File file = new File("file.txt");
在這里,我們使用了delete()方法刪除該對(duì)象指定的文件。