14、Java入门—Java IO流之File类的使用

来源:互联网 发布:顺源it 编辑:程序博客网 时间:2024/05/21 14:50
java.io.File类用于表示文件(目录)

File类只用于表示文件(目录)的信息(名称、大小等)不能用于文件内容的访问

File类常用API:
1、exists();判断文件(目录)是否存在
2、mkdir();创建一级目录;mkdirs()创建多级目录
3、delete();删除文件(目录)
4、isDirectory();判断是否是一个目录
5、isFile();判断是否是一个文件
6、createNewFile();创建一个文件
7、getAbsolutePath();获取绝对路径
8、getName()获取目录(文件)名称
9、getParent();获取父目录路径
10、getParentFile().getAbsolutePath();获取父目录文件的绝对路径


File类的使用
// 了解构造函数的情况 查帮助
File file = new File("E:\\javaio\\imooc");
// System.out.println(file.exists());
if (!file.exists())// 判断文件是否存在
file.mkdir(); // file.mkdirs()创建多级目录
else
file.delete();
// 是否是一个目录 如果是目录返回true,如果不是目录or目录不存在返回的是false
System.out.println(file.isDirectory());
// 是否是一个文件如果是文件返回true,如果不是文件or文件不存在返回的是false
System.out.println(file.isFile());
// File file2 = new File("e:\\javaio\\日记1.txt");
File file2 = new File("e:\\javaio", "日记1.txt");
if (!file2.exists())
try {
file2.createNewFile();// 创建一个文件
} catch (IOException e) {
e.printStackTrace();
}
else
file2.delete();// 删除文件
// 常用的File对象的API
System.out.println(file);// file.toString()的内容路径
System.out.println(file.getAbsolutePath());// 文件的绝对路径
System.out.println(file.getName());// 文件名字
System.out.println(file.getParent());// 文件父目录
System.out.println(file.getParentFile().getAbsolutePath());// 文件路径

File遍历目录与文件
public static void listDirectory(File dir) throws IOException  {
// 判断是否是否存在
if (!dir.exists()) {
throw new IllegalArgumentException("目录:" + dir + "不存在");
}
// 判断是否为目录
if (!dir.isDirectory()) {
throw new IllegalArgumentException(dir + "不是目录");
}


// list方法用于列出当前目录下的子目录和文件,返回的是字符串数组,不包含子目录下的文件
/*String[] filenames = dir.list();
for (String string : filenames) {
System.out.println(dir + "\\" + string);
}
*/
// 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的方法
// 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] files = dir.listFiles();
for (File fl : files) {
if (fl.isDirectory()) {
// 递归
listDirectory(fl);
} else {
System.out.println(fl);
}
}
}

//遍历子目录下的内容 构造成File对象做递归操作
//throws IOException 回避了IO的抛出异常
File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象
if (files!=null && files.length > 0){
for(File file:files){
if(file.isDrectory()){
listDirectory(file);
}else{
System.out.println(file);
}
}
}

0 0