File
关于文件和文件夹的操作,我们使用的都是一个类:File
常用的构造器 | 说明 |
---|---|
File(String pathname) | 将指定的路径名转换成一个File对象 |
File(String parent,String child) | 根据指定的父路径和文件路径创建对象 |
方法:
File类常用方法 | |
---|---|
boolean createNewFile() | 当指定文件(或文件夹)不存在时创建文件并返回true,否则返回false,路径不存在则抛出异常 |
boolean mkdir() | 当指定文件(或文件夹)不存在时创建文件夹并返回true,否则返回false |
boolean mkdirs() | 创建指定文件夹,所在文件夹目录不存在时,则顺道一块创建 |
boolean delete() | 删除文件 。要删除一个目录,需要先删除这个目录下的所有子文件和子目录 |
boolean renameTo(File dest) | 将当前File对象所指向的路径修改为指定File所指的路径 (修改文件名称) |
boolean exists() | 是否存在 |
boolean isFile() | 是否为一个文件 |
boolean isDirectory() | 是否是一个目录 |
String getPath() | 获取文件路径 |
获取文件的信息
指定一个目录,在目录下创建文件
/**
* 创建指定的文件
* @param pathname
*/
public void createNewFile(String pathname) {
File file = new File("d:/",pathname);
if( !file.exists() ) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
创建方法:printFileInfo , 输出文件相关的信息
public void printFileInfo(String pathname) {
File file = new File(pathname);
System.out.println("文件名:"+ file.getName());
System.out.println("文件路径:"+ file.getPath());
System.out.println("文件的父路径:"+ file.getParentFile());
System.out.println("文件是否存在:"+ file.exists());
System.out.println("是否为文件:"+ file.isFile());
System.out.println("是否为文件夹:"+ file.isDirectory());
}
测试
demo.createNewFile("测试2.txt");
demo.printFileInfo("d:/测试2.txt");
使用File制作目录浏览器
这个程序出了 File ,还需要使用到数学上的一个概念「递归」。在代码中就是方法在内部代码中可以调用自身,但是需要有正常的技术方式,否则无法停止的话在可能会OOM的。
方法名 | 说明 |
---|---|
String[] list() | 返回文件夹下面的文件名列表 |
File[] listFiles() | 返回文件夹下面的文件对象列表 |
示例:
import java.io.File;
/**
* 循环输出指定目录的所有文件和文件夹
* @author 喵先生
*/
public class FileExplorer {
public static void main(String[] args) {
File f = new File("D:\\epub");
printTree(f, 0);
}
public static void printTree(File f, int level) {
for (int j = 0; j < level; j++) {
System.out.print("\t");
}
System.out.println(f.getAbsolutePath());
if (f.isDirectory()) {
level++;
File strs[] = f.listFiles();
for (int i = 0; i < strs.length; i++) {
File f0 = strs[i];
printTree(f0, level + 1);
}
}
}
}