输入输出流类处理的是文件内容读写的问题, File类表示文件和文件夹的存储的信息,比如文件位置,大小等
File类3种构造
File(File parent, String child)
File(String pathname)
File(String parent, String child)
String path = "D:" + File.separator + "filetest";
File file = new File(path);
System.out.println(file);
//构建的File对象,传入的file对象作为根目录
File file2 = new File(file, "subfile");
System.out.println(file2);
//构建的File对象,传入的String对象作为根目录
File file3 = new File(path, "subfile");
System.out.println(file3);
File类常用方法:
getPath() 返回路径的字符串,相当于File类的toString()方法
getName() 返回文件名,不包括路径
exists() 文件/目录是否存在
mkdir():在存在的路径下创建1级子目录
mkdirs() 可以在存在的路径下创建多层目录
例子:
现在要在D盘下创建D:/ffffff/filetest/sub目录
String path2 = "D:" + File.separator + "ffffff" +File.separator + "filetest" + File.separator+ "sub";
File file = new File(path);
file.mkdirs();
file.mkdir()无法创建D:/ffffff/filetest/sub这种4层结构的目录,file.mkdirs()可以
isFile() 是否是文件
isDirectory() 是否是目录
length() 返回按字节(byte)度量的长度isDirectory() 是否是目录
createNewFile() 创建文件
getParent() 返回父目录的字符串,文件返回它的父目录,目录返回上级目录,根目录返回null
getParentFile() 返回父目录的File对象,同上renameTo(File file) 改名,可以改后缀名,比如1.txt改为2.dat
getCanonicalPath() 文件规范路径名
getCanonicalFile() 文件规范路径File对象
delete() 删除文件,非目录
list() 列出File对象下的所有1级文件夹名字和文件名
例子:目录D:/filetest下,存放着folder1文件夹,test.txt,test2.txt
String path = "D:" +File.separator + "filetest";
File file = new File(path);
for (String s : file.list())
System.out.println(s);
结果:
folder1
test.txt
test2.txt
与之对应的是listFiles(), 用法
for (File s : file.listFiles())
System.out.println(s);
返回符合FilenameFilter接口过滤条件的 文件名数组
用法:写一个类实现FilenameFilter接口,并且重写accept方法,在accept中写文件的过滤逻辑
例子:返回指定目录下后缀为txt的文件
class ExtensionFilter implements FilenameFilter {
public ExtensionFilter(String ext) {
extension = "." + ext;
}
@Override
public boolean accept(File dir, String name) {
return name.endsWith(extension);
}
private String extension;
}
.....main方法里:
for (String s : file.list(new ExtensionFilter("txt")))
System.out.println(s);