Java的File类
1.File类概述
File类是java.io包下代表与平台无关的文件和目录。File能新建,删除,重命名文件盒目录,但是File不能访问文件内容本身。如果要访问文件内容本身,就需要使用输入,输出流。
2.访问文件和目录
File类可以使用文件路径字符串来创建File实例,该路径可以是绝对路径也可以是相对路径。在默认情况下,系统总是依据用户的工作路径来解释相对路径,这个路径由系统属性"user.dir"指定。
import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) { String path="src/com/t/file.txt"; File file=new File(path);//新建一个File实例 File dir=new File("src");//新建一个File实例 /* * 访问文件名或目录名相关的方法 */ file.getName();//获取文件名 file.getPath();//获取相对路径名 file.getAbsolutePath();//获取绝对路径名 file.getParent();//获取父路径名(即文件或目录所在目录) file.renameTo(new File("src/com/t/lavor_zl.txt"));//重命名此File对象所对应的文件或目录,如果重命名成功返回true,否则返回false /* * 文件或目录检测方法,返回类型是boolean,若为真返回true,若为假返回false */ file.exists();//判断File对象所对应的文件或目录是否存在 file.canWrite();//判断File对象所对应的文件或目录是否可写 file.canRead();//判断File对象所对应的文件或目录是否可读 file.canExecute();//判断File对象所对应的文件或目录是否可执行 file.isFile();//判断File对象所对应的对象是否是文件 file.isDirectory();//判断File对象所对应的对象是否是目录 file.isAbsolute();//判断File对象所对应的文件或目录是否是绝对路径 /* * 获取常规文件或目录信息 */ file.lastModified();//返回文件或目录最后修改时间 file.length();//返回文件或目录的内容的长度 /* * 文件和目录操作相关方法 */ try { file.createNewFile();//当此File对象所对应的文件不存在时,创建一个File对象所指定的新文件,若果创建成功则返回true,否则返回false } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } dir.mkdir();//试图创建一个File对象所对应的目录,若果创建成功返回true,否则返回发false dir.list();//列出File对象的所有子文件名和路径名,返回String数组 dir.listFiles();//列出File对象的所有子文件和路径,返回File数组 file.deleteOnExit();//注册一个删除钩子,指定当Java虚拟机退出时,删除File对象所对应的文件或目录 file.delete();//删除File对象所对应的文件或目录 } }
3.文件过滤器
在File类的lsit()方法中可以接受一个FilenameFilter参数,通过该参数可以只列出符合条件的文件。FilenameFilter接口里包含了一个accep(File dir,String name)方法,该方法将依次对指定File的所有子目录或者文件进行迭代,如果该方法返回true,则list()方法会列出该子目录或文件。
import java.io.File; import java.io.FilenameFilter; public class FilenameFilterTest { public static void main(String[] args) { File dir=new File("src");//创建一个目录的实例 System.out.println(dir.getAbsolutePath()); String[] nameList=dir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".java");//如果文件名以.java结束,则返回true } }); try{ for(String name:nameList){ System.out.println(name); } }catch(NullPointerException e){ e.printStackTrace(); } } }
PS:Windows的路径分隔符是反斜杠(\),而反斜杠(\)在Java程序中代表转移字符,所以在Windows下使用路径分隔符时要用双反斜杠(\\),或者使用Java与平台无关的路径分割符:斜杠(/)。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。