Java文件
java.io包中的File類,用於處理文件。
使用File類,創建該類的對象,並指定文件名或目錄名:
示例
import java.io.File; // 導入File類
File myObj = new File("filename.txt"); // 指定文件名
File類有許多方法,如下表:
| 方法 | 返回值類型 | 描述 |
|---|---|---|
canRead() |
Boolean | 測試文件是否可讀 |
canWrite() |
Boolean | 測試文件是否可寫 |
createNewFile() |
Boolean | 創建一個空文件 |
delete() |
Boolean | 刪除一個文件 |
exists() |
Boolean | 測試文件是否存在 |
getName() |
String | 返回文件的名稱 |
getAbsolutePath() |
String | 返回文件的絕對路徑 |
length() |
Long | 返回文件大小(以字節為單位) |
list() |
String[] | 返回目錄中文件的數組 |
mkdir() |
Boolean | 創建一個目錄 |
如果你不知道“包”是什么,請參考我們的Java包教程。
創建文件
可使用createNewFile()方法創建一個文件。這個方法返回一個布爾值: 如果文件創建成功,返回true; 如果文件已經存在,返回false。
注意,關於文件的操作,通常應該包含在一個try…catch塊,如果發生錯誤(如由於某種原因無法創建文件),會拋出IOException:
示例
import java.io.File; // 導入File類
import java.io.IOException; // 導入IOException類來處理錯誤
public class CreateFile {
public static void main(String[] args) {
try {
File myObj = new File("filename.txt");
if (myObj.createNewFile()) {
System.out.println("創建文件: " + myObj.getName());
} else {
System.out.println("文件已經存在");
}
} catch (IOException e) {
System.out.println("出錯了");
e.printStackTrace();
}
}
}
輸出將為:
創建文件: filename.txt
可以指定路徑創建文件(需要權限)。對於Windows,使用雙反斜杠轉義“\”字符,對於Mac和Linux上,可以直接寫路徑,比如:/Users/name/filename.txt
示例
File myObj = new File("C:\\Users\\MyName\\filename.txt");
獲取文件信息
可以通過File類的方法,獲取文件信息:
示例
import java.io.File;
public class GetFileInfo {
public static void main(String[] args) {
File myObj = new File("filename.txt");
if (myObj.exists()) {
System.out.println("文件名: " + myObj.getName());
System.out.println("絕對路徑: " + myObj.getAbsolutePath());
System.out.println("可寫: " + myObj.canWrite());
System.out.println("可讀: " + myObj.canRead());
System.out.println("文件大小(字節): " + myObj.length());
} else {
System.out.println("文件不存在");
}
}
}
輸出將為:
文件名: filename.txt
絕對路徑: C:\Users\MyName\filename.txt
可寫: true
可讀: true
文件大小(字節): 0
寫入文件
下面的示例中,使用FileWriter類的write()方法,將一些文本寫入文件。注意,寫完文件后,應該使用close()方法關閉文件:
示例
import java.io.FileWriter; // 導入FileWriter類
import java.io.IOException; // 導入IOException類來處理錯誤
public class WriteToFile {
public static void main(String[] args) {
try {
FileWriter myWriter = new FileWriter("filename.txt");
myWriter.write("奇客谷教程 - 精品編程教程與實例");
myWriter.close();
System.out.println("成功寫入文件");
} catch (IOException e) {
System.out.println("出錯了");
e.printStackTrace();
}
}
}
輸出將為:
成功寫入文件
讀取文件
下面的例子中,使用Scanner類來讀取文件內容:
示例
import java.io.File; // 導入File類
import java.io.FileNotFoundException; // 導入這個類來處理錯誤
import java.util.Scanner; // 導入Scanner類來讀取文本文件
public class ReadFile {
public static void main(String[] args) {
try {
File myObj = new File("filename.txt");
Scanner myReader = new Scanner(myObj);
while (myReader.hasNextLine()) {
String data = myReader.nextLine();
System.out.println(data);
}
myReader.close();
} catch (FileNotFoundException e) {
System.out.println("出錯了");
e.printStackTrace();
}
}
}
輸出將為:
奇客谷教程 - 精品編程教程與實例
注意: Java API中有很多類可以用來讀寫文件:
FileReader、BufferedReader、Files、Scanner、FileInputStream、FileWriter、BufferedWriter、FileOutputStream等,可根據需要選擇。
