File的总结一

总结一些File的基本用法。

一、File类的一些常用方法


第一类:访问文件名相关的方法
1.String getName() 返回此File对象所表示的文件名或路径名(若为路径,则返回最后一级子路径名)
2.String getPath() 返回此File对象所对应的路径名
3.String getParent() 返回此File对象所对应的目录(最后一级子目录)的父目录名
4.boolean renameTo(File newName)重命名此File对象所对应的文件或目录,如果重命名成功返回true,否则返回false

第二类:文件检测相关的方法
boolean exists() 判读File对象所对应的文件或目录是否存在
boolean isFile() 判断File对象所对应的是否是文件,而不是目录
boolean isDirectory() 判断File对象所对应的是否是目录而不是文件
boolean canRead()判断File对象所对应的文件或目录是否可读
boolean canWrite()判断File对象所对应的文件或目录是否可写

第三类:获取常规文件信息的相关方法
long lastModified() 返回文件的最后修改时间
long length() 返回文件内容的长度。

第四类:文件或目录操作相关的方法
boolean createNewFile() 当此File对象所对应的文件不存在时,该方法将新建一个该File对象所指定的新文件
boolean delete() 删除File对象所对应的文件或路径
boolean mkdir() 试图创建一个File对象所对应的目录,调用方法时File对象必须对应一个路径,而不是一个文件
boolean mkdirs()同mkdir()方法
String[] list()列出File对象所对应的所有子文件名和路径名,返回String数组
File[] listFiles 列出File对象所对应的所有子文件和路径,返回File数组

二:值得注意的地方
1.delete()方法既可以删除文件也可以删除文件夹,但是删除的文件夹需要是空文件夹
2.注意mkdir()和mkdirs()之间的区别
mkdir()和mkdirs()都是创建一个目录,路径名都由当前File对象指定,如果该目录能被创建则为 true;否则为 false。
但是:
mkdir() 只能在已经存在的目录中创建创建文件夹,如果在不存在的目录下创建就会失败。
mkdirs() 可以在不存在的目录中创建文件夹。

三、File的应用Demo

package javaDemo;

import java.io.File;
import java.io.IOException;

public class FileDemo {

public static void main(String[] args) {
// 创建文件夹
createDirectoty();
// 创建文件
createFile("fileDemo/directory/file2.txt");
createFile("fileDemo/file3.txt");
// 删除文件
// deleteFile();
// 删除fileDemo目录下的所有文件
deleteFile2("fileDemo");
}

// 删除文件
private static void deleteFile() {
// File file = new File("fileDemo");//想直接删除整个文件夹--失败
// File file = new File("fileDemo/directory");//想直接删除父目录下的某个子文件夹--失败
// File file = new
// File("fileDemo/directory/file2");//想直接删除父目录下的某个子文件夹下的文件--失败
File file = new File("fileDemo/directory/file2.txt");// 想直接删除父目录下的某个子文件夹下的文件(带后缀)--成功
boolean isDeleteFile = false;
if (file.exists()) {
isDeleteFile = file.delete();
}
System.out.println("===" + isDeleteFile);
}

private static void deleteFile2(String path) {
File file = new File(path);
if (!file.exists()) {
return;
}
File[] files = file.listFiles();
System.out.println("file.length:" + file.length());
for (int i = 0; i < files.length; i++) {
System.out.println("files[" + i + "] = " + files[i].getName());
if (!files[i].exists()) {
continue;
}
boolean isDeleteChildFile = false;
if (files[i].isFile()) {
isDeleteChildFile = files[i].delete();
System.out.println("=== fileName:" + files[i].getName() + " isDeleteChildFile:" + isDeleteChildFile);
}
if (files[i].isDirectory()) {
deleteFile2(files[i].getPath());
}
}
boolean isSuccessfule = file.delete();
System.out.println("===fileName:" + file.getName() + "  isSuccessfule:" + isSuccessfule);
}

/**
* 创建文件

* @param path
*/
private static void createFile(String path) {
File file = new File(path);
boolean isCreateFile = false;
try {
isCreateFile = file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("path = " + path + " isCreateFile:" + isCreateFile);
}

/**
* 创建文件夹
*/
private static void createDirectoty() {
File file = new File("fileDemo", "directory");
boolean isCreateDirectory = false;
if (!file.exists()) {
// boolean isSuccessful = file.mkdir();//如果目录fileDemo不存在,就会创建失败
isCreateDirectory = file.mkdirs();//如果fileDemo目录不存在会自动创建一个fileDemo父目录
}
System.out.println("===" + isCreateDirectory);
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值