java中使用File类来作为文件和目录路径名的抽象表示,是对于文件或者目录本身的属性来说的,而不是针对于文件的内容。
一些关于File类基本操作的代码如下:
public class FileTest {/*** 可用于操作文件或者目录* @author chaizepeng** @param args*/public static void main(String[] args) {//构造方法,获取一个File的实例,就相当于在指定路径下获取一个文件或文件夹(不管其是否存在)File file = new File("E://test/a/b/c.txt");//1、listRoots() 用于查看当前操作系统的文件系统的所有根目录File[] listRoots = File.listRoots();for (int i = 0; i < listRoots.length; i++) {System.out.println(listRoots[i].getPath());;}//2、createTempFile(String prefix, String suffix, File directory)//在指定的目录中创建一个新的空文件,使用给定的前缀(czp)和后缀(test.txt)字符串生成其名称try {File.createTempFile("czp", "test.txt",new File("E:"));} catch (IOException e) {e.printStackTrace();}//3、判断文件或文件夹是否存在boolean exists = file.exists();if (exists) {System.out.println("文件夹存在");}//4、创建一个文件try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}//5、创建一个一层目录的文件夹(除根目录外)file.mkdir();//6、创建一个多层目录的文件夹file.mkdirs();//7、获取文件名String fileName = file.getName();//8、获取文件的全路径名String allFileName = file.getPath();//9、获取文件所在的父级目录名String parentFileName = file.getParent();}
}
接下来通过完成一个需求来演示一下关于File类的一些其他的功能,代码如下:
public class FileListTest {public static void main(String[] args) {FileListTest fileListTest = new FileListTest();//需求1:获取当前系统文件系统中所有的.xml文件fileListTest.getFileEndWithXml();//需求2:获取指定目录下所有的.xml文件,这个功能常用于文件上传选择指定类型文件时fileListTest.getThisPathFile("指定目录");}public void getThisPathFile(String path) {File file = new File(path);File[] listFiles = file.listFiles(new FileFilter() {//文件过滤器@Overridepublic boolean accept(File pathname) {return pathname.getName().endsWith(".routes");}});for (File file2 : listFiles) {System.out.println("名字都是以.routes结尾:"+file2.getName());}}/*** 需求1:获取当前系统文件系统中所有的.xml文件* @author chaizepeng** @param file*/public void getFileEndWithXml() {//1、先获取文件系统中所有的根目录File[] listRoots = File.listRoots();for (File file : listRoots) {getFileEndWithXml(file);}}/*** 递归获取每一个文件* @author chaizepeng** @param file*/private void getFileEndWithXml(File file) {File[] listFiles = file.listFiles();if (listFiles != null) {for (File childFile : listFiles) {if (childFile.isDirectory()) {//判断file是否是一个目录getFileEndWithXml(childFile);//是目录的话,递归遍历}if (childFile.isFile() && childFile.getName().endsWith(".xml")) {//判断file是否是文件,并且以.xml结尾System.out.println(childFile.getPath());}}}}
}
以上只是对File类的用法做了简单的介绍。