(1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件
(2)构造方法
A:File file = new File("e:\\demo\\a.txt");
B:File file = new File("e:\\demo","a.txt");
C:File file = new File("e:\\demo");
File file2 = new File(file,"a.txt");
这三种构造方法实现的效果是一样的
(3)File类的功能
A:创建功能
public boolean createNewFile():创建文件,如果已经存在就不创建
public boolean makdir():创建文件夹,如果已经存在就不创建
public boolean makdirs():创建文件夹,如果父文件夹不存在,会帮你建立
Test1:
File file = new File("a");
file.mkdirs();
Test2:
File file = new File("test\\a");
file.mkdirs();
当项目路径下没有“a“文件夹和”test“文件夹,那么Test1就可以在项目路径下建立“a“文件夹
而Test2会在建立”test“文件夹之后在”test“文件夹内建立“a“文件夹
B:删除功能
public boolean delete():删除指定的文件或文件夹
Test1:
File file = new File("test\\a");
file.mkdirs();
file.delete();
在建立”test“文件夹之后在”test“文件夹内建立“a“文件夹,然后删掉“a“文件夹。
注意:
A:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目目录下
B:java中的删除不走回收站(删除之后在回收站中找不到,所以不要随
意删除磁盘上的东西)
C:要删除一个文件夹,请注意该文件夹内不能有文件夹或文件
C:重命名功能
public boolean renameTo(File dest)
如果路径相同,就是改名。
如果路径名不同,就是改名并剪切
Test1:
File file = new File("test\\a.txt");
File file2 = new File("test\\b.txt");
file.renameTo(file2);
”test“文件夹内的“a.txt“重命名为”b.txt“
Test2:
File file = new File("test\\a.txt");
File file2 = new File("b.txt");
file.renameTo(file2);
”test“文件夹内的“a.txt“重命名为”b.txt“,并且直接放到项目目录下
路径以盘符开始:绝对路径
路径不以盘符开始:相对路径
D:判断功能
public boolean isDirectory():判断是否是目录(文件夹)
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判断是否可读
public boolean canWrite():判断是否可写
public boolean isHidden():判断是否隐藏
E:获取功能
public String getAbsolutePath():获取绝对路径
public String getPath():获取相对路径
public String getName():获取名称
public long length():获取长度,字节数
public long lastModified():获取最后一次的修改时间,毫秒值
Test1:
File file = new File("b.txt");
System.out.println(file.lastModified());
获取毫秒值
Test2:
File file = new File("b.txt");
Date d=new Date(file.lastModified());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s=sdf.format(d);
System.out.println(s);
将获取到的毫秒值转化为日期输出
F:高级获取功能
public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
Test1:
File file = new File("d:\\");
String[] sc=file.list();
for(String s:sc) {
System.out.println(s);
}
获取D盘的所有文件或者文件夹的名称数组,并输出
public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
Test1:
File file = new File("d:\\");
File[] sc=file.listFiles();
for(File s:sc) {
System.out.println(s);
}
获取D盘的所有文件或者文件夹的的File数组,并输出
G:过滤器功能
public String[] list(FilenameFilter filter)
Test1:
File file = new File("d:\\");
String[] sc=file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO 自动生成的方法存根
System.out.println("name:"+name);
if(name.endsWith(".zip"))
return true;
else
return false;
}
});
for(String s:sc) {
System.out.println(s);
}
获取D盘的所有以”.zip“结尾的文件或者文件夹的名称数组,并输出