我们想要实现IO操作,就必须要知道硬盘上文件的表现形式
Java提供了一个类让我们操作硬盘上的文件:File
File也就是文件表现形式
File:文件和目录(文件夹)路径名的抽象表示。
构造方法:
public File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
如果给定的字符串是空字符串,则结果是空的抽象路径名。
public File(String parent,String child)
从父路径名字符串和子路径名字符串创建新的File实例。
public File(File parent,String child)
从父抽象路径名和子路径名字符串创建新的File实例。
创建功能
public boolean createNewFile()
public boolean mkdir()
public boolean mkdirs()
删除功能:
public boolean delete()
重命名功能
public boolean renameTo(File dest)
判断功能
public boolean isDirectory()
public boolean isFile()
public boolean exists()
public boolean canRead()
public boolean canWrite()
public boolean isHidden()
基本获取功能
public String getAbsolutePath()
public String getPath()
public String getName()
public long length()
public long lastModified()
高级获取功能
public String[] list()
public File[] listFiles()
import java.io.File;
public class FileDemo8 {
public static void main(String[] args) {
File file = new File("F:\\");
File[] files = file.listFiles();
for (File f : files){
if (f.isFile()){
if(f.getName().endsWith(".txt")){
System.out.println(f.getName());
}
}
}
}
}
eg:判断F盘下面有没有.txt后的文件,如果有,就输出此文件名称
分析:1、先获取所有的文件和文件夹,然后在遍历的时候,再去判断是否是文件,是否是.jpg后缀 的,最后再将满足条件的文件过滤出来获取到名称。
2、在获取的时候,获取到的数据就是满足条件的,我们直接输出就可以了。
文件名称过滤器的实现思想及代码
public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)
import java.io.File;
import java.io.FilenameFilter;
public class FileDemo9 {
public static void main(String[] args) {
File file = new File("F:\\");
String[] list = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// return false;
// return true;
//通过测试发现,目录下的文件挥着文件夹该不该获取到,取决于这里的返回值
//true,就获取到加到数组中,false,就不获取,不加到数组中
// System.out.println(dir);
// System.out.println(name);
File file1 = new File(dir, name);
boolean b = file1.isFile();
boolean b1 = name.endsWith(".txt");
return b && b1;
}
});
for (String s : list){
System.out.println(s);
}
}
}