深入了解Java I/O 之File类
File类的作用
在Java I/O中,File类被用来表示一个文件或目录的路径名。虽然这个类的名字是File,但它实际上只是一个路径名的抽象表示。File类的实例代表的是一个文件或目录的路径,而不是实际上的文件或目录。
File类的常见操作
File类提供了一组重要的方法来操作文件和目录。下面列出了您可能会经常使用的一些方法。
创建文件或目录
要创建一个空文件,可以使用createNewFile()方法。例如:
File file = new File("test.txt");
try {
boolean created = file.createNewFile();
} catch (IOException e) {
// 处理异常
}
要创建一个目录,可以使用mkdir()或mkdirs()方法。mkdir()方法创建单个目录,mkdirs()方法创建多层目录:
File dir = new File("testdir");
boolean created = dir.mkdir();
删除文件或目录
要删除文件,可以使用delete()方法。例如:
File file = new File("test.txt");
boolean deleted = file.delete();
要删除目录,必须先删除该目录中的所有文件和子目录。可以使用delete()方法递归删除目录中的所有内容,然后再删除目录本身:
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}
读取文件或目录信息
要读取文件或目录的基本信息,可以使用File类的一些方法,比如:getName(), getPath(), getParent(), lastModified(), length()等。例如:
File file = new File("test.txt");
String fileName = file.getName();
long fileSize = file.length();
示例
示例一:列出指定目录下的所有文件和目录
以下是列出指定目录下的所有文件和目录的示例代码:
public static void listFiles(String path) {
File directory = new File(path);
File[] files = directory.listFiles();
for (File file : files) {
System.out.println(file.getAbsolutePath());
if (file.isDirectory()) {
listFiles(file.getAbsolutePath());
}
}
}
示例二:文件复制
以下是将一个文件复制到另一个文件的示例代码:
public static void copyFile(File source, File destination) throws IOException {
try (
InputStream in = new FileInputStream(source);
OutputStream out = new FileOutputStream(destination);
) {
byte[] buf = new byte[8192];
int length;
while ((length = in.read(buf)) > 0) {
out.write(buf, 0, length);
}
}
}
// 调用示例
File source = new File("source.txt");
File destination = new File("destination.txt");
copyFile(source, destination);
总结
通过上述示例和讲解,相信大家已经能深入了解Java I/O之File类,包括File类的作用、常见操作和两个示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深入了解Java I/O 之File类 - Python技术站