构造函数
//IO流(File对象-构造函数&字段)
//构造函数
public static void demo_1(){
//可以将一个已存在或不存在的文件或目录封装成file对象
File file = new File("F:/buf.txt");
File f2 = new File("F://");
File f3 = new File(f2,"F://buf.txt");
File f4 = new File("c:/"+System.getProperty("file.separator")+"/abc//ab//a.txt");
File f5 = new File("c:"+File.separator+"abc/ab/a.txt");//c:\abc\ab\a.txt
System.out.println(f5);
}
1.获取
//File对象的常见方法
public static void function_demo(){
//1.获取
/**
* 1.1获取文件名称
* 1.2获取文件路径
* 1.3获取文件大小
* 1.4获取文件修改时间
*/
File file = new File("F:/buf.txt");
String name = file.getName();
String path = file.getPath();
String path_abs = file.getAbsolutePath();
long size = file.getFreeSpace();
long len = file.length();//文件大小,单位为字节
long time = file.lastModified();
Date date = new Date(time);
DateFormat dateformat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
String str_time = dateformat.format(date);//2021年3月9日 CST 下午7:40:36
String parent = file.getParent();//F:\
System.out.println(parent);
}
2.创建与删除
public static void creatAndDelete() throws IOException{
//2.创建与删除
/**
* boolean
*/
File file = new File("F:/buf.txt");
/**
* 和输出流不一样,如果文件不存在则创建,如果文件存在则不创建
*/
//文件创建
boolean b = file.createNewFile();
System.out.println("b:"+b);
//文件删除
boolean d = file.delete();
System.out.println("d:"+d);
//创建目录
File dir = new File("F:/adc");
boolean di = dir.mkdir();
boolean dd = dir.delete();
System.out.println("di:"+di);
}
3.判断
public static void isDemo(){
//3.判断
File file = new File("F:/");
boolean b = file.exists();//文件或目录是否存在
System.out.println("b:"+b);
System.out.println(file.isDirectory());//file是不是目录
System.out.println(file.isFile());//file是不是文件
}
重命名
public static void reName(){
//重命名
File f1 = new File("F:/buf.txt");
File f2 = new File("F:/buf1.txt");
boolean b = f1.renameTo(f2);//将f1的名字改为f2的
System.out.println(b);
}
public static void getDir(){
//系统根目录和容量获取
File[] files = File.listRoots();
for(File file:files){
System.out.println(file);
}
// C:\
// D:\
// E:\
// F:\
// G:\
File file = new File("F:/");
System.out.println(file.getFreeSpace());//298798497792
System.out.println(file.getTotalSpace());//314571747328
System.out.println(file.getUsableSpace());//298798497792可用于此虚拟机的字节数
}
获取目录内容
public static void getDirList(){
//获取目录内容
File file = new File("F:/");
String[] file_names = file.list();//当前目录下的文件和文件夹名称,包含隐藏文件
//调用list方法的file对象中封装的必须是目录。否则会发生NullPointerException
//如果访问的是系统目录也会发生空指针异常
//如果目录存在但是没有内容,会返回一个长度为0的数组
for(String name:file_names){
System.out.println(name);
}
}
过滤器
class filterByTxt implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
System.out.println(name);
return name.endsWith(".txt");
}
}
class filterByHidden implements FileFilter{
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
return pathname.isHidden();
}
}
class filterByName implements FilenameFilter{
String name;
filterByName(String name){
this.name = name;
}
@Override
public boolean accept(File dir,String name) {
// TODO Auto-generated method stub
// System.out.println(name);
return name.endsWith(this.name);
}
}
File dir = new File("F:/组会PPT/");
String[] file_names = dir.list(new filterByName(".pptx"));//过滤txt文件
// File[] file_hiden = dir.listFiles(new filterByHidden());//过滤隐藏文件
for(String f:file_names){
System.out.println(f);
}