File类概述
Java.io.File类是文件和文件目录路径的抽象表示形式,与平台无关。文件和目录是可以通过File封装成对象的,对于File而言,其封装的并不是一个真实存在的文件,仅仅是一个路径名而已,它可以是存在的,也可以是不存在的,将来是要通过具体的操作把这个路径的内容转换为具体存在的。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。
File类中涉及到关于文件或文件目录的创建,删除,重命名,修改时间,文件大小等方法,并未涉及到写入或读取文件内容的操作,如果需要读取或写入文件内容,必须使用IO流来完成。File对象可以作为参数传递给流的构造器,指明读取或写入的终点。
构造方法
public File(String pathname):以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。示例代码如下:
File file1=new File("hello.txt");
File file2=new File("D:\\java\\javatest.txt");
System.out.println(file1);
System.out.println(file2);
/*输出:hello.txt
D:\java\javatest.txt
*/
public File(String parent,String child):以parent为父路径,child为子路径创建File对象。示例代码如下:
File file3=new File("D:\\java","hellojava");
System.out.println(file3);
//输出:D:\java\hellojava
public File(File parent,String child):根据一个父File对象和子文件路径创建File对象。示例代码如下:
File file4=new File(file3,"hello.txt");
System.out.println(file4);
//输出:D:\java\hellojava\hello.txt
File类使用的注意事项 1 绝对路径和相对路径 2 路径分隔符
File file5=new File("D:"+File.separator+"1024");
System.out.println(file5);
File file6=new File("D:\\1024");
System.out.println(file6);
File file7=new File("D:/1024");
System.out.println(file7);
/*输出:D:\1024
D:\1024
D:\1024
*/
静态成员变量 常用方法 获取功能
public String getAbsolutePath():获取绝对路径
File file1=new File("hello.txt");
System.out.println(file1.getAbsolutePath());
//输出:E:\Java workplace\22-6-13\hello.txt
public String getPath():获取路径
File file1=new File("hello.txt");
System.out.println(file1.getPath());
//输出:hello.txt
public String getName():获取名称
File file2=new File("D:\\java\\javatest.txt");
System.out.println(file2.getName());
//输出:javatest.txt
public String getParent():获取上层文件目录路径,若无则返回null
File file2=new File("D:\\java\\javatest.txt");
System.out.println(file2.getParent());
//输出:D:\java
public long length():获取文件长度(即:字节数),不能获取目录的长度
File file2=new File("D:\\java\\javatest.txt");
System.out.println(file2.length());
//输出:0
public long lastModified():获取最后一次的修改时间,毫秒值
File file2=new File("D:\\java\\javatest.txt");
System.out.println(file2.lastModified());
//输出:0
public String[] list():获取指定目录下的所有文件或者文件目录的字符串数组
File file2=new File("D:\\aaa");
String[] list=file2.list();
for(String s:list) {
System.out.println(s);
}
/*输出:helloworld.txt
java
*/
public File[] listFiles():获取指定目录下的所有文件或者文件目录的File对象数组
File file2=new File("D:\\aaa");
File[] list=file2.listFiles();
for(File f:list) {
System.out.println(f);
}
/*输出:D:\aaa\helloworld.txt
D:\aaa\java
*/
重命名功能
public boolean renameTo(File dest):把文件重命名为指定的文件路径
File file1=new File("D:\\aaa\\hello.txt");
File file3=new File("D:\\aaa","hellojava.txt");
System.out.println(file1.renameTo(file3));
//输出:false
判断功能
public boolean isDirectory():判断是否是文件目录
File file1=new File("hello.txt");
File file2=new File("D:\\aaa");
System.out.println(file1.isDirectory());
System.out.println(file2.isDirectory());
/*输出:false
true
*/
public boolean isFile():判断是否是文件
File file1=new File("hello.txt");
File file2=new File("D:\\aaa\\hellojava.txt");
System.out.println(file1.isFile());
System.out.println(file2.isFile());
/*输出:false
true
*/
public boolean exists():判断是否存在
File file1=new File("hello.txt");
File file2=new File("D:\\aaa\\hellojava.txt");
System.out.println(file1.exists());
System.out.println(file2.exists());
/*输出:false
true
*/
public boolean canRead():判断是否可读
File file1=new File("hello.txt");
File file2=new File("D:\\aaa\\hellojava.txt");
System.out.println(file1.canRead());
System.out.println(file2.canRead());
/*输出:false
true
*/
public boolean canWrite():判断是否可写
File file1=new File("hello.txt");
File file2=new File("D:\\aaa\\hellojava.txt");
System.out.println(file1.canWrite());
System.out.println(file2.canWrite());
/*输出:false
true
*/
public boolean isHidden():判断是否隐藏
File file1=new File("hello.txt");
File file2=new File("D:\\aaa\\hellojava.txt");
System.out.println(file1.isHidden());
System.out.println(file2.isHidden());
/*输出:false
false
*/
创建功能
public boolean createNewFile():创建文件,若文件存在,则不创建,返回false
File file1=new File("D:\\aaa\\hellojava.txt");//D盘中已有该文件
File file2=new File("D:\\aaa\\helloworld.txt");
if(!file1.exists()) {
try {
boolean flag1=file1.createNewFile();
System.out.println(flag1?"创建成功":"创建失败");
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}else {
boolean flag2=file1.delete();
System.out.println(flag2?"删除成功":"删除失败");
}
if(!file2.exists()) {
try {
boolean flag3=file1.createNewFile();
System.out.println(flag3?"创建成功":"创建失败");
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}else {
boolean flag4=file1.delete();
System.out.println(flag4?"删除成功":"删除失败");
}
/*输出:删除成功
创建成功
*/
public boolean mkdir():创建文件目录,如果此文件目录存在,就不创建了,如果此目录文件的上层目录不存在,也不创建
File file1=new File("D:\\aaa");//已存在
File file2=new File("D:\\bbb");//不存在
File file3=new File("D:\\ccc\\java");//不存在,且上层目录也不存在
System.out.println(file1.mkdir());
System.out.println(file2.mkdir());
System.out.println(file3.mkdir());
/*输出:false
true
false
*/
public boolean mkdirs():创建文件目录,如果此文件目录存在,就不创建了,如果此目录文件的上层目录不存在,则一并创建
File file1=new File("D:\\aaa");//已存在
File file2=new File("D:\\bbb");//不存在
File file3=new File("D:\\ccc\\java");//不存在,且上层目录也不存在
System.out.println(file1.mkdirs());
System.out.println(file2.mkdirs());
System.out.println(file3.mkdirs());
/*输出:false
true
true
*/
注意事项:如果你创建文件或者文件目录没有写盘符路径unix路径简化,那么默认在项目路径下
删除功能
public boolean delete():删除文件或者文件夹
注意事项:Java中的删除不走回收站,要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|