本文共 3214 字,大约阅读时间需要 10 分钟。
java.io包下主要包括输入,输出两种IO流,每种输入输出流又可分为字节流和字符流。字节流以字节为单位来处理输入、输出操作,字符流以字符来处理输入输出。
package filetest;import java.io.File;import java.io.IOException;public class FileTest { public static void main(String[] args)throws IOException { //以当前路径来创建一个File对象 File file=new File("."); //直接获取文件名,输出'.' System.out.println(file.getName()); //获取相对路径的父路径 System.out.println(file.getParent()); //获取相对路径 System.out.println(file.getAbsoluteFile()); //获取上一级路径 System.out.println(file.getAbsoluteFile().getParent()); //在当前路径下创建一个临时文件 File tmpFile=File.createTempFile("aaa",".txt", file); //指定当JVM退出时删除该文件 //tmpFile.deleteOnExit(); //以系统当前时间作为新文件名来创建新文件 File newFile=new File(System.currentTimeMillis()+""); System.out.println("newFile对象是否存在:"+newFile.exists()); //以指定newFile对象来创建一个文件 newFile.createNewFile(); //以newFile对象来创建一个目录,因为newFile已经存在 //下面方法会返回false newFile.mkdir(); //使用list()方法列出当前路径下的所有文件和路径 String[] fileList=file.list(); System.out.println("========当前路径下所有文件和路径如下======="); for(String fileName:fileList) { System.out.println(fileName); } //listRoots()静态方法列出所有的磁盘根路径 File[] roots=File.listRoots(); System.out.println("========系统所有根路径如下=========="); for(File root:roots) { System.out.println(root); } }}
File类的list()方法可以接收一个FilenameFilter参数,通过该参数可以只列出符合条件的文件。
FilenameFilter接口里包含一个accept(File dir,String name)方法,该方法依次对指定File的所有子目录或者文件进行迭代,如果该方法返回true,则list()方法会列出改子目录或文件public class FilenameFilterTest{ public static void main(String[] args) { File file=new File("."); //使用Lambda表达式(目标类型为FilenameFilter)实现文件过滤器 //如果文件名以.javaj结尾,或者文件路径对应一个路径,返回true String[] nameList file.list((dir,name)->name.endsWith(".java")|| new File(name).isDirectory()); for(String name : nameList) { System.out.println(name); } }}
转载地址:http://qykni.baihongyu.com/