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:UsersMyNamefilename.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
等,可根据需要选择。