1.介绍
上一篇博客介绍的是java中常用的操作文件的方式,本篇博客着重讲解一下,在Java中是如何来操作文件夹的。主要是利用的是Java.IO包下面的File类,本篇博客着重讲解一下该类的构造函数和常用的方法。
2.File类的字段摘要
File类为我们提供了与系统有关的路径分割符,字段分别如下
static String pathSeparator:返回值为字符串,结果表示分号;
static char pathSeparatorChar:返回值为char类型,结果表示分号
static char separatorChar:返回值为char类型,结果表示\的路径分割符
static string separator:返回值为String类型,结果表示\的路径分割符
<span style="font-family:SimSun;font-size:18px;">package com.IO; import java.io.File; public class FileDemo { public static void main(String[] args) { String separator=File.separator; System.out.println(separator);//输出\ windows下的路径分割符号 String pathSeparator=File.pathSeparator; System.out.println(pathSeparator);//输出结果为分号; } } </span>有了这些字段,以后用的时候,就可以无关跨系统的路径分割符了。
2.File类的常用方法
1.创建一个文件
<span style="font-family:SimSun;font-size:18px;">package com.IO; import java.io.File; import java.io.IOException; public class FileDemo1 { public static void main(String[] args){ File file=new File("c:"+File.separator+File.separator+"1.txt"); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } </span>
运行之后会在C盘有一个1.txt的文件
2.删除方法
删除方法:boolean delete(),删除File构造函数方法中封装的路径,删除成功后返回true,注意的是直接删除,不走回收站
延迟删除方法 void deleteOnExit()删除File构造方法中封装的路径,等JVM结束前删除
<span style="font-family:SimSun;font-size:18px;">package com.IO; import java.io.File; public class FileDemo1 { public static void main(String[] args){ File file=new File("c:"+File.separator+"1.txt"); if(file.exists()){ file.delete(); }else { System.out.println("文件不存在"); } } } </span>
3.创建一个文件夹
用的是File类的mkdir方法
<span style="font-family:SimSun;font-size:18px;">package com.IO; import java.io.File; public class FileDemo1 { public static void main(String[] args){ File file=new File("c:"+File.separator+"1"); file.mkdir(); } } </span>
4.列出文件下的全部目录(包括隐藏的文件)String[] list:获取File构造方法中封装的路径下的全部文件夹和文件
File[] listFiles:返回所有文件下的目录对象,两者的返回值不同
<span style="font-family:SimSun;font-size:18px;">package com.IO; import java.io.File; public class FileDemo1 { public static void main(String[] args){ File file=new File("c:"+File.separator+"Users"); String[] str=file.list(); for(String s:str){ System.out.println(s); } File[] files=file.listFiles(); for(File s:files){ System.out.println(s); } } } </span>
5.文件过滤器
在获取指定文件夹下的指定文件时,可以采取过滤器效果,采用的是如下方法
File[] listFile(FileFilter filter):文件过滤器,可以实现想获取想要的文件
<span style="font-family:SimSun;font-size:18px;">package com.IO; import java.io.File; import java.io.FileFilter; public class FileFlter { public static void main(String[] args) { File file = new File("c:" + File.separator + "1"); // 采用匿名类的形式封装FileFilter方法 File[] files = file.listFiles(new FileFilter() { // 自定义自己的过滤方法 public boolean accept(File pathname) { return pathname.getName().endsWith(".txt"); } }); for (File s : files) { System.out.println(s); } } } </span>
6.File类的判断方法
~boolean exists():判断File构造方法中封装的路径是否存在
~boolean isDirectory():判断File构造方法中封装的是不是目录
~boolean isFile():判断File构造方法中封装的是不是文件
~boolean isAbslute():判断File构造方法中封装的是不是绝对路径
~boolean isHidden():判断File构造方法中封装的路径是不是隐藏属性
<span style="font-family:SimSun;font-size:18px;">package com.IO; import java.io.File; /* * 测试File的判断方法 */ public class FileExists { public static void main(String[] args) { method(); } //判断file构造方法封装的是不是绝对路径 private static void method_4(){ File file=new File("c:\\java"); boolean b=file.isAbsolute(); System.out.println(b); } //判断file构造方法封装的是不是文件 private static void method_2(){ File file=new File("c:\\java"); boolean b=file.isFile(); System.out.println(b); } //判断file构造方法封装的是不是目录 private static void method_1(){ File file=new File("c:\\java"); boolean b=file.isDirectory(); System.out.println(b); } //用来判断封装的某个路径是否存在 private static void method(){ File file=new File("c:\\windows"); boolean b=file.exists(); System.out.println(b); } } </span>
7.File类的获取方法get开头
static File[] listRoots() 返回当前系统根
String getName() 获取的是File构造方法封装的文件名或者是文件夹名,获取到的是封装的路径的最末尾的名字,文件夹,文件
String getParent() 获取的是File构造方法封装的路径的父路径,没有返回null,如果使用这个方法,返回的是String对象,可以使用String类的方法
File getParentFile() 获取的是File构造方法封装的路径的父路径,没有返回null,如果使用这个方法,返回的是File对象,可以使用File类的方法
String getPath()将File构造方法中封装的路径,变成String
String getAbsolutePath()获取File构造方法中封装的路径的绝对路径,返回String
File getAbsoluteFile()获取File构造方法中封装的路径的绝对路径,返回File
<span style="font-family:SimSun;font-size:18px;">package com.IO; import java.io.File; public class GetFile { public static void main(String[] args) { method_1(); } private static void method_1(){ //获得指定的文件的名称 File file=new File("c:\\windows\\system32"); String name=file.getName(); //获得父级目录的对象路径 File parentFile=file.getParentFile(); System.out.println(parentFile.toString()); //获取绝对路径的方法 String absoluteFile=file.getAbsolutePath(); System.out.println(name); } //获得系统的根目录一般就是操作系统的C D E 的盘符 private static void method(){ File[] filelist=File.listRoots(); for(File o:filelist){ System.out.println(o); } } } </span>