java基础之File类

来源:互联网 发布:三国立志传2经验算法 编辑:程序博客网 时间:2024/05/17 01:03
File类是java.io包中很重要的一个类;

File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录;

File对象可以对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等;

File对象无法操作文件的具体数据,即不能直接对文件进行读/写操作。

---------------------------------------------------------------------------------------------------

创建File对象三种方法:

//在当前目录下创建一个与aaa.txt文件名相关联的文件对象
File f1 = new File("aaa.txt");
//指明详细的路径以及文件名,请注意双斜线或用反斜杠
File f2 = new File("D:\\Java\\Hello.java");
//指明详细的路径以及目录名,请注意双斜线
File f3 = new File("D:/Java");

---------------------------------------------------------------------------------------------------

创建功能
public boolean createNewFile()创建文件 如果存在这样的文件,就不创建了
public boolean mkdir()创建文件夹 如果存在这样的文件夹,就不创建了
public boolean mkdirs()创建文件夹,如果父文件夹不存在,会帮你创建出来
删除功能
public boolean delete()
重命名功能
public boolean renameTo(File dest)
判断功能
 public boolean isDirectory():判断是否是目录
 public boolean isFile():判断是否是文件
 public boolean exists():判断是否存在
 public boolean canRead():判断是否可读
 public boolean canWrite():判断是否可写
 public boolean isHidden():判断是否隐藏
基本获取功能
public String getAbsolutePath():获取绝对路径
public String getPath():获取相对路径
public String getName():获取名称
public long length():获取长度。字节数
public long lastModified():获取最后一次的修改时间,毫秒值

高级获取功能
public String[] list()将目录下的子目录及文件的名字,返回到String数组中
public File[] listFiles()将目录下的子目录及文件的实例返回到File数组中
具体代码:

package com.etc.day15.file;import java.io.File;public class FileDemo_1 {public static void main(String[] args) {//高级获取功能将目录下的子目录及文件的名字,返回到String数组中File file = new File("e:/job");String [] filelist = file.list();for(String files:filelist){System.out.println(files);}System.out.println("---------------");File[] file1 =file.listFiles();for(File files1:file1){System.out.println(files1.getName());}}}

package com.etc.day15.file;import java.io.File;import java.io.IOException;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;public class FileDemo {public static void main(String[] args) {File file = new File("fileDemo");long time = file.lastModified();//返回最后修改的毫秒数Date date = new Date(time);DateFormat dateformat = new SimpleDateFormat("YYYY-MM-dd kk:mm:ss");String str = dateformat.format(date);System.out.println("最後修改日期:"+str);System.out.println("文件名稱:"+file.getName());System.out.println("文件絕對路徑:"+file.getAbsoluteFile());System.out.println("文件相對路徑:"+file.getPath());System.out.println("是否是文件:"+file.isFile());System.out.println("是否为 目录:"+file.isDirectory());File file1 = new File("e:/b/a/c");System.out.println("是否存在目录"+file1.exists());//目录是否存在,如果存在返回trueSystem.out.println("是否创建目录"+file1.mkdir());//创建文件夹。如果存在这样的文件夹就不创建了,已经存在返回falseSystem.out.println("是否创建目录"+file1.mkdirs());//创建文件夹,如果父文件夹不存在会帮你创建出来,已经存在返回false//System.out.println("删除文件:"+file.delete());}}

文件过滤:

文件名过滤器接口:interface FilenameFilter
常用于过滤不符合规格的文件名
需重写accept方法自定义过滤规则,如下:

boolean  accept(File dir, String name)
--  dir:表示文件的当前目录。
--  name:表示当前目录的子目录或者文件的名字。
File类中提供了使用文件名过滤器遍历目录的方法:

String[]  list(FilenameFilter filter)
--  把满足指定过滤条件的文件和目录,返回到String数组中。
File[]  listFiles(FilenameFilter filter)
--  把满足指定过滤条件的文件和目录,返回到File数组中。

package com.etc.day15.file;import java.io.File;import java.io.FilenameFilter;public class FileFilter {public static void main(String[] args) {File file = new File("e:/驱动");File [] filelist = file.listFiles(new FilenameFilter(){@Overridepublic boolean accept(File dir, String name) {if(name.endsWith(".zip")){return true;}return false;}});//遍歷for(File f:filelist){System.out.println(f.getName());}}}







原创粉丝点击