IO流
File类:
- 是java.io包中一个很重要的类
- File类的对象可以表示文件,目录。 在程序中File类对象可以代表一个文件或目录
- File对象可以对文件的属性进行操作: 如文件名,日期,文件大小等
- File对象不能对文件中具体数据进行操作
File类有三种构造方法:
注意:
一般在输入路径名的时候不会报错,但是在具体操作时会因为错误路径而报错。
package day1;
import java.io.File;
public class FileDemo1 {
public static void main(String[] args) {
//File 的三种构造方法
//file表示一个文件
File file=new File("D:\\789.txt");//D:\789.txt 绝对路径
File file1=new File("789.txt");//相对路径
String parent="D:\\";
File file2=new File(parent,"789.txt");
File file3=new File("D:\\");
File file4=new File(file3,"789.txt");
}
}
File类中常用的方法:
boolean exists() 判断文件是否存在,存在返回true,否则返回false
boolean isFile() 判断是否为文件,存在返回true,否则返回false
boolean isDirectory() 判断是否为目录,是目录返回true,否则返回false
String getName() 获得文件的名称
long length() 获得文件的长度(字节数)
boolean createNewFile() throws IOException 创建新文件,创建成功返回true,否则返回false,有可能抛出IOException异常,必须捕捉
delete() 删除文件,文件夹必须为空,且只能逐级删除
mkdir() 创建单个文件
mkdirs 创建多级文件夹
package day1;
import java.io.File;
public class FileDemo2 {
public static void main(String[] args) {
File f = new File("D:\\demo.txt");
System.out.println(f.canExecute());//测试是否可以执行此路径名表示的文件。
System.out.println(f.canRead());//测试是否可以读取由此路径名表示的文件。
System.out.println(f.canWrite());//测试是否可以修改由此路径名表示的文件。
System.out.println(f.isAbsolute());//测试此抽象路径名表示的文件是否是绝对的。
System.out.println(f.isHidden());//测试此抽象路径名表示的文件是否为隐藏文件。
System.out.println(f.isDirectory());//测试此路径名表示的文件是否为目录。
System.out.println(f.isFile());//测试此路径名表示的文件是否为普通文件。
System.out.println(f.exists());//测试此路径名表示的文件是否存在。
System.out.println(f.length());//字节单位
long t = f.lastModified();
System.out.println(f.getAbsolutePath());
System.out.println(f.getName());
System.out.println(f.getParent());
}
}
package day1;
import java.io.File;
import java.io.IOException;
public class FileDemo3 {
public static void main(String[] args) {
// File f = new File("E:\\demo.txt");
/* try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
System.out.println("路径不正确");
}*/
//f.delete();
//File f=new File("E:");
//f.mkdir(); 创建单个文件
// f.delete();
// File f1 = new File("E:\\demo1");
//f1.mkdirs();
//f1.delete();//删除文件夹时,文件夹中必须为空 且只能逐层删除
File f = new File("D:");
File [] f0 = f.listFiles();
for(File file : f0){
System.out.println(file);
}
}
}
通过过滤器来实现得到 含有此后缀名 的文件名
package day1;
import util.StringUtil;
import java.io.File;
import java.io.FileFilter;
public class MyFileFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
return StringUtil.subFileType(pathname.getName()).equalsIgnoreCase("chm");
}
}