java之20天 File对象(一)

本文详细介绍了Java中File类的使用方法,包括创建、删除文件、判断文件属性、获取文件信息等核心功能,并提供了多个示例代码帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=medium][b]File类 的使用[/b][/size]


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

/**
* File类
* (弥补了IO流的不足,不能对文件夹进行操作)
* 1)用来将文件或者文件夹 封装成对象
* 2)方便对文件或者文件夹进行操作
* 3)File对象可以作为参数传递给流的构造函数
* 4)了解File类中常用的方法.
*
* File 类的常见方法
* 1.创建
* boolean createNewFile():在指定的位置创建文件,如果该文件已经存在,则不创建,返回false
* 和 输出流不一样,输出流对象一建立就创建文件,而且会覆盖已存在的文件.
* //程序中需要用到临时文件
* File tf=createTempFile("临时文件","tmp");
* File tf=createTempFile("临时文件","tmp","c:\\system32\\");
*
* 2.删除
* boolean delete() : 删除失败返回 false
* void deleteOnExit(): 程序退出的时候 ,删除指定文件
*
* 3.判断
* boolean canExecute():如果文件存在返回true 表示可以操作 ,不存在返回false 表示不能执行
* boolean canRead(); 文件是否可读.
* boolean canWrite(): 文件是否可写
* int compartTo(): 按文件名比较
* boolean isAbsolute():是否是绝对路径
* boolean isHidden(); 是否是隐藏文件
*
* boolean exists():文件是否存在
* boolean isDirectory():是否是目录 (必须要判断是否存在)
* boolean isFile():是否是文件 (必须要判断是否存在)
*
* 4.获取信息
* String getName();获取文件名
* String getPath(): 获取路径
* String getParent(): 获取父目录 如果获取的的是相对路径返回的是null
* String getAbsolutePath(): 获取绝对路径
* File getAbsoluteFile(): 获取绝对路劲文件对象
* long lastModified(): 获取文件的组后修改时间
* long lenth(): 获取文件的长度.
* String getCanonicalPath();获取规范的文件路径
* boolean renameTo():修改名称
*
* File[] listRoots(): 获取当前系统可用 盘符
* String[] list():表示的目录中的文件和目录。(包含隐藏文件 和 目录)
*
*
*/
public class FileDemo {

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//consMethod();
//method_1();
//method_2();
//method_3();
//method_4();
//method_5();
method_6();
}
//获取当前盘符下的文件和目录 (包含隐藏文件 和 目录)
public static void method_6(){
File f=new File("cc\\");
String[] names=f.list(); //调用 list方法的file对象必须是封装了一个目录,该目录必须存在
for (String string : names) {
System.out.println(string);
}
}

//获取盘符
public static void method_5(){
File[] files=File.listRoots();
for (File file : files) {
System.out.println(file); //
System.out.println(file.length()); //返回当前盘符的大小
}

/*返回:
C:\
D:\
E:\
F:\
*/

}
//修改文件名
public static void method_4(){
File f1=new File("c:\\MyTools.java");
File f2=new File("c:\\Tools.java");
sop("rename:"+f1.renameTo(f2)); //将 MyTools.java --> Tools.java

File f3=new File("D:\\Tools.java");
sop("rename And like move:"+f1.renameTo(f3)); //发现C:\\MyTools.java 文件 移动到 D:\\Tools.java
sop("rename And like move:"+f3.renameTo(f1)); //发现 又将 D:\\Tools.java 移动到了C:\\MyTools.java 下面了
}

//获取文件信息
public static void method_3() throws IOException{
File f=new File("bb\\aa\\a.txt");


sop("path:"+f.getPath()); //获取封装的路径
sop("Canonicalpath:"+f.getCanonicalPath()); //获取封装的路径
sop("absPath:"+f.getAbsolutePath()); //获取文件的绝对路径
sop("parentPath:"+f.getParent()); //获取文件的绝对路径中的父母.如果获取的是相对路径,返回null
//如果相对路径中有上一层目录,那么该目录就是返回结果
sop("modified:"+f.lastModified()); //最后的修改时间

sop("length:"+f.length());
}


//文件判断
public static void method_2() throws IOException{
File f=new File("isFile.txt");

//记住判断文件兑现是否是文件或者目录的时候,必须要先判断文件对象封装的内容是否存在.
//通过exists 判断
sop("dir:"+f.isDirectory()); //false
sop("File:"+f.isFile()); //false

/*f.createNewFile();
sop("dir:"+f.isDirectory()); //false
sop("File:"+f.isFile()); //false
*/

//是否是绝对路径
sop("isAbsolute:"+f.isAbsolute());
sop("isHidden:"+f.isHidden());

//谁说上面的.txt 是文件 也可能是目录
f.mkdir();
sop("dir:"+f.isDirectory()); //false
sop("File:"+f.isFile()); //false
sop("isHidden:"+f.isHidden());
}

//File常用方法
public static void method_1() throws IOException{

//创建文件夹
File dir=new File("abc");
sop(dir.mkdir()); //true

//mkdir只能创建一级目录
File dir1=new File("bb\\kk");
sop(dir1.mkdir()); //false

//创建多级目录
File dirs=new File("cc\\kk\\jj\\mm");
sop(dirs.mkdirs()); //true

//创建
File f=new File("file.txt");
sop("create:"+f.createNewFile());

//是否可执行
sop("execute:"+f.canExecute());

//是否可以读
sop("read:"+f.canRead());

//是否可写
sop("write:"+f.canWrite());

//文件名比较
sop("compare:"+f.compareTo(new File("ab.txt")));

//文件是否存在
sop("exists:"+f.exists());

//删除
// sop("delete:"+f.delete());

}

//构造方法演示
public static void consMethod(){
//将a.txt封装成file对象,可以将已有的和 未出现的文件 或者文件夹 封装成 file对象
File f1=new File("a.txt"); //相对路径

//可以将 文件名 作为参数进传递进来
File f2=new File("c:\\abc","b.txt");


File d=new File("c:\\abc");
File f3=new File(d,"c.txt");

sop("f1:"+f1);
sop("f2:"+f2);
sop("f3:"+f3);

//发现这个里面的分隔符 跨平台
File f4=new File("c:\\a\\b\\c\\a.txt");
//下面的跨平台
f4=new File("c:"+File.separator+"a"+File.separator+"b"+File.separator+"c"+File.separator+"a.txt");

}

public static void sop(Object obj){
System.out.println(obj);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值