目录
引言
java中我们通过java.io.File类实现对文件的基本属性进行操作,包括文件属性读取,文件创建,文件删 除,文件添加等等。File是一个类,那么在使用的时候就需要创建对象,但是File类的实例是不可变的,也就 是说,一旦创建,由File对象表示的抽象路径名将永远不会改变,也就是说利用构造方法,指定路径名、文件 名等来构造File类的对象,之后调用该对象的createNewFile()方法就可以创建出相应的文件。
File类的对象可以代表一个具体的文件路径,在实际运用种,可以使用绝对路径也可以使用相对路径, 下面是创建文件对象实例
一,File工具类构造方法
| 构造方法 | 说明 |
| new File("d:\test\test.txt") | 指定的目录下建立文件,如果路径不存在,则建立虚拟file对象 |
| new File("test.txt") | 在当前项目根目录下建立文件 test.txt |
| new File("d:\test") | test可以是个目录,也可能是个文件 |
| new File("d:\test\","test.dat") | 指定目录下,建立指定的文件 |
1. File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。如果给定字符串是空字符串,那么结果 是空抽象路径名。
2. File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例,如果 parent 为 null,则创 建一个新的 File 实例,这与调用给定 child 路径名字符串的单参数 File 构造方法的效果一样。否则, parent 抽象路径名用于表示目录,child 路径名字符串用于表示目录或文件。如果 child 路径名字符串 是绝对路径名,则用与系统有关的方式将它转换为一个相对路径名。如果 parent 是空抽象路径名,则通过将 child 转换为抽象路径名,并根据与系统有关的默认目录解析结果来创建新的 File 实例。否则,将每个路 径名字符串转换为一个抽象路径名,并根据父抽象路径名解析子抽象路径名。
3. File(String parent, String child) parent指定路径(父目录),可以是File类对象也可以是字符串,child中也可以加入路径层级,但要注 意,所用的路径必须存在,不存在的路径不会新建。
二,File类的常用方法
| 方法 | 说明 |
| File.delete() | 删除文件或空目录文件夹目录 |
| File.createNewFile() | 创建一个新的空文件 |
| File.mkdir() | 创建一个新的空文件夹 |
| File.mkdirs() | 批量建立多级目录 |
| File.list() | 获取指定目录下的文件和文件夹名称 |
| File.listFiles() | 获取指定目录下的文件和文件夹对象 |
| File.exists() | 文件或者文件夹是否存在 |
| String getParent() | 返回父目录的路径名字符串;如果没有指定父目录,则返回 null |
| File getParentFile() | 返回父目录File对象 |
| String getName() | 返回文件或文件夹的名称 |
| String getAbsolutePath() | 获取绝对路径 |
| String getPath() | 返回路径名字符串 |
| ong lastModified() | 返回文件最后一次被修改的时间 |
| long length() | 获取长度,字节数 |
| boolean canRead() | 判断是否可读 |
| boolean canWrite() | 判断是否可写 |
| boolean isHidden() | 判断是否隐藏 |
| boolean renameTo(File dest) | 重命名,剪切粘贴文件,移动文 件 |
示例代码:
public static void main(String[] args) throws Exception {
File file = new File("c:\\51gjie.txt");
//返回文件的长度
System.out.println("length==" + file.length());
//创建文件对象
File file3 = new File("c:\\51gjie", "code");
//判断文件或文件夹是否存在
boolean exists = file3.exists();
if (exists) {
file3.delete();//存在就删除
} else {
file3.mkdirs();//不存在就创建
}
//判断该对像是否为一个文件夹。【文件夹必须存在】
boolean isd = file3.isDirectory();
}
三,File类操作案例
3.1,建立文件
示例代码:
try (FileOutputStream filew=new FileOutputStream("C:\\\\Users\\\\21309\\\\Desktop\\khb.txt",true)){
filew.write("hello你好".getBytes(StandardCharsets.UTF_8));
}catch (Exception e){
}
输出结果:

3.2,读取文件
示例代码:
try (FileReader reader=new FileReader("C:\\\\Users\\\\21309\\\\Desktop\\khb.txt")){
while(reader.ready()){
System.out.println((char)reader.read());
}
}catch (Exception e){
}
输出结果:

3.3, 文件批量命名
示例代码:
public static void main(String[] args) {
//获取要批量改名的文件夹路径
String src="C:\\Users\\21309\\Pictures\\二维码";
File file=new File(src);
if (file.isDirectory()){
//将文件夹下的文件存入数组
File[] files=file.listFiles();
//声明一个计数器
int index=0;
//遍历遍历文件夹下的子文件
for (File file1 : files) {
//获取文件夹下子文件的文件名
String filename=file1.getName().toLowerCase(Locale.ROOT);
//截取文件后缀名
int pos=filename.lastIndexOf(".");
String exn=filename.substring(pos+1);
//判断是否为相同文件名文件
if ("png".equalsIgnoreCase(exn)){
//设置文件同意命名格式
String newFilename=String.format("优快云-%03d.%s",++index,exn);
//将文件按规定格式命名
file1.renameTo(new File("C:\\Users\\21309\\Pictures\\二维码",newFilename));
}
}
}
}
输出结果:

3.4,删除文件夹(包括目录和文件)
示例代码:
public static void main(String[] args) {
String path = "C:\\Users\\21309\\Pictures\\联想截图";
File file = new File(path);
del(file);
System.out.println("删除成功");
}
public static void del(File src) {
//判断给定文件是否为目录
if (src.isDirectory()) {
//是目录的话遍历
for (File file : src.listFiles()) {
//如果目录下仍有目录
if (file.isDirectory()) {
//递归使用del()
del(file);
} else {
//如果不是目录,删除文件
file.delete();
}
}
}
//删除目录
src.delete();
}
2万+



被折叠的 条评论
为什么被折叠?



