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
等,可根据需要选择。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章