当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作。
当把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作。
因此我们把这种输入和输出动作称为IO操作。
通过构造方法创建File对象:
//3种构造方法
File file=new File("D:\io1227\b.txt");
File file=new File("src");
System.out.println(file);
File file=new File("D:\io1227","a.txt");
System.out.println(file);
//File(String pathname, String child)
//父路径固定,子路径可替换 更灵活
File file=new File(new File("D:\io1228"),"a.txt");
System.out.println(file);
// 与系统有关的路径分隔符
//win ;
//linux :
System.out.println(File.pathSeparator);
// 与系统有关的默认名称分隔符
//win
//linux /
System.out.println(File.separator);
File类的获取
File file=new File("D:\io1227\a.txt");
//获取绝对路径
System.out.println(file.getAbsolutePath());
//获取路径
System.out.println(file.getPath());
//获取文件名
System.out.println(file.getName());
//获取文件大小
System.out.println(file.length());
文件和文件夹的创建删除等
public static void method01() throws IOException{
File file=new File("D:\io1227\b.7z");
//创建文件或文件夹
boolean flag=file.createNewFile();
System.out.println(flag);
}
public static void method02(){
File file=new File("D:\io1227\b");
//删除文件
boolean flag=file.delete();
System.out.println(flag);
}
public static void method03(){
File file=new File("D:\io1227\a.txt");
//判断该路径表示的文件或目录是否真实存在
boolean flag=file.exists();
System.out.println(flag);
//判断该路径是否是文件夹
boolean flag1=file.isDirectory();
System.out.println(flag1);
//判断该路径是否是文件
boolean flag2=file.isFile();
System.out.println(flag2);
}
public static void method04(){
//File file=new File("D:\io1227\b.png");
File file=new File("D:\io1227\a\b\c\d\e");
//创建文件夹
boolean flag=file.mkdirs();
System.out.println(flag);
}
//获取目录中的文件和文件夹
public static void method05(){
File file=new File("D:\io1227");
String[] filenames=file.list();
for(String f: filenames){
System.out.println(f);
}
}
//获取目录中的文件和文件夹
public static void method06(){
File file=new File("D:\io1227");
//File[] filenames=file.listFiles();
//获取当前路径下的.txt文件
File[] filenames=file.listFiles(new MyFileter());
for(File f: filenames){
System.out.println(f.getName()+"..."+f.length());
}
}
文件过滤器
MyFileter
public class MyFileter implements FileFilter{
public boolean accept(File pathname) {
//判断是否是txt结尾
return pathname.getName().toLowerCase().endsWith(".txt");
}
}
public static void main(String[] args) {
//找到该路径下的所有txt文件
File file=new File("D:\io1227");
File[] files=file.listFiles(new MyFileter());
for(File f:files){
System.out.println(f);
}
}
注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件
1,指定的目录必须是存在的,
2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException