前言:
Java中对数据进行持久化操作
File类的概述和作用:
java中把文件或目录(文件夹)都封装成File类的对象,在java中可以根据File类对系统中的文件或者目录(文件夹)进行操作
- 1 File类的静态成员变量
public class FileDemo{
public static void main(String[] args){
System.out.println(File.pathSepartor);
//显示当前操作系统下的目录分隔符,windwos操作系统为";",linux为":"
System.out.println(File.separtor);
//显示当前操作系统下的名称分隔符,windwos操作系统为"\",linux为"/"
}
}
- 2 File类的构造方法
public class FileDemo{
public static void main(String[] args){
//关于路径大小写问题,windows系统中不区分大小写,linux区分
File file1 = new File("c:\\windows\\admin");
System.out.println(file1);
//在File(String pathname)构造方法中直接传递文件/文件夹路径,输出为"c:\windwos\admin"
File file2 = new File("c:","windows\\admin");
System.out.println(file2);
//在File(String parent,String child)构造方法中直接传递文件/文件夹父路径和子路径灵活性更高,输出为"c:\windwos\admin"
File file3 = new File(file1,"picture");
System.out.println(file3);
//在new File(File file,String child)构造方法中直接传递文件/文件夹父路径对象和子路径,灵活性更高,输出为"c:\windwos\admin\picture"
}
}
- 3 File类的创建和删除功能
public class FileDemo{
public static void main(String[] args) throws IOException{
/*File类使用 createNewFile() 方法创建文件*/
File file1 = new File("d:\\wenjian.txt");
boolean b = file1.createNewFile();
System.out.println(b);
//创建文件,成功返回true,反之为false(如果文件已经存在也为false)
/*File类使用 mkdirs() 、mkdir() 方法创建目录*/
File file2 = new File("d:\\mulu");
boolean b = file2.mkdirs();
//mkdirs()可以创建单层以及多层目录,mkdir()只能创建单层目录
System.out.println(b);
//创建目录,成功返回true,反之为false(如果目录已经存在也为false)
/*File类使用 delete() 方法删除文件或目录*/
File file3 = new File("d:\\mulu");
boolean b = file3.delete();
System.out.println(b);
//删除文件/目录,成功返回true,反之为false(此删除不走回收站)
}
}
- 4 File类的获取功能
public class FileDemo{
public static void main(String[] args){
File file = new File("c:\\windows\\win32.exe")
String name = file.getName();
//显示文件/目录的名字,即路径最后部分的名字,输出为"win32.exe"
String path = file.getPath());
//显示文件/目录的全路径,输出为"c:\windows\win32.exe"
String length = file.getLength();
//显示文件/目录的大小,单位为字节,返回值类型为long
String absolutePath1 = file.getAbsolutePath();
File absoluteFile1 = file.getAbsoluteFile();
//显示文件/目录的绝对路径,输出为"c:\windows\win32.exe"
String absolutePath2 = file.getParentPath();
File absoluteFile2 = file.getParentFile();
//显示文件/目录的父路径,输出为"c:\windows",如果对盘符进行该操作则返回"null"
}
}
- 5 File类的判断功能
public class FileDemo{
public static void main(String[] args){
File file = new File("c:\\windows\\win32.exe")
boolean b = file.exists();
//显示文件/目录是否存在,存在返回true,反正为false
}
}
- 6 File类的列表获取功能
public class FileDemo{
public static void main(String[] args){
File file = new File("c:")
File[] fileList = file.listFiles();
//显示全路径,推荐使用
String[] fileList2 = file.list();
//只显示具体的文件/目录名称,不推荐使用
File[] fileList3 = file.listRoots();
//获取系统中的所有根目录
}
}
- 7 文件过滤器
//创建文件过滤类(实现FileFilter接口)
public class MyFilter implements FileFilter{
//该方法的调用者为listFiles(),具体调用过程为file.listFiles()方法遍历目录,获得目录下所有路径,该方法再调用accept()方法,并将所获得路径传给accept()方法,根据accept()方法中的过滤规则进行过滤,如果符合规则则将该路径保存到fileList的数组中
public boolean accept(File pathname){
}
}
//根据创建的过滤规则,遍历目录
public FileFilterDemo{
public static void main(String[] args){
File file = new File("c:");
File[] fileArr = file.listFiles(new MyFilter());
for(File f : fileArr){
System.out.println(f);
}
}
}
- 8 递归遍历全目录
public FileDemo{
public static void main(String[] args){
File dir= new File("c:\\");
getAllDir(dir);
}
public static void getAllDir(File dir){
File fileArr = dir.listFiles();
for(File f : fileArr){
if(f.isDirectory){ //判断变量f的路径是不是文件夹
return getAllDir(f);
}else{
System.out.println(f);
}
}
}
}
网友评论