File类的简单使用

来源:互联网 发布:房地产大数据 编辑:程序博客网 时间:2024/06/10 08:59

前段时间一直在搞IOS,很久没碰JAVA了,感觉都生疏了,现在因为工作的需要,又要开始学习JAVA,特别是JAVA的IO,真的很生啊,所以今天就学学了,先从File类开使:

1.访问文件和目录

package com.file;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());//获取相对路径的父路径可能出错,下面代码输出nullSystem.out.println(file.getParent());//获取绝对路径System.out.println(file.getAbsoluteFile());//获取上一级路径System.out.println(file.getAbsoluteFile().getParent());//在当前路径下创建一个临时文件File tempFile=File.createTempFile("aaa", ".txt",file);    //指定当JVM退出时,删除此文件tempFile.deleteOnExit();//以系统当前时间作为新文件名来创建文件File newFile=new File(System.currentTimeMillis()+".");//输出是false,有点奇怪,对象创建好了,只是没有创建它在系统的物理文件而已System.out.println("newFile对象是否存在 : "+newFile.exists());//以指定的File对象来创建一个文件newFile.createNewFile();//输出trueSystem.out.println("newFile对象是否存在 : "+newFile.exists());//以指定的File对象来创建一个目录,因为newFile已经存在//所以下面的方法返回false,即无法创建该目录System.out.println(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);}}}

运行上面的程序输出一下内容,并会在当前的路径下创建新文件

.nullE:\mywork\TestFileUpload\.E:\mywork\TestFileUploadnewFile对象是否存在 : falsenewFile对象是否存在 : truefalse========当前路径下所有文件和目录如下=======.classpath.myeclipse.mymetadata.project.settings13707478714771370748051829aaa11121.txtsrcWebRoot====系统所有根路径如下====C:\D:\E:\F:\G:\H:\

 

接下来就简要的说下File类的一些相关注意的问题
注意:Windows路径分隔符使用反斜线(\),而JAVA程序中的反斜线表示转义字符,所以如果需要在Windows路径中包括反斜线,应该用两条反斜线,如:E:\\aaa\aaa.txt,或者直接使用斜线也可以.Java程序支持将斜线(/)当成平台无关的路径分隔符.

不管是文件还是目录都是通过File来操作的,File能删除、新建和重命名文件和目录,File不能访问文件内容本身,如果需要访问文件内容本身,需要使用输入、输出流。

2.文件过滤器

在file 的list方法里可以接收一个FilenameFilter参数,通过该参数,可以只列出符合条件的文件.在 FilenameFileter接口了,有一个accept(File dir ,String name)方法,该方法将依次对指定的File的所有子目录、子文件夹进行迭代,如果该方法返回true,则list方法会列出该子目录或子文件夹.

package com.file;import java.io.File;import java.io.FilenameFilter;public class FilenameFileterTest {public static void main(String[] args) {File file =new File(".");String[] nameList=file.list(new MyFilenameFilter());for(String name:nameList){System.out.println(name);}}}//实现自己的FilenameFilter实现类class MyFilenameFilter implements FilenameFilter{public boolean accept(File dir, String name) {  if(name.endsWith(".java")||new File(name).isDirectory()){  return true;  }return false;}}

 

原创粉丝点击