java基础整理-File类

来源:互联网 发布:如何快速入门java 编辑:程序博客网 时间:2024/06/04 21:56

一、构造-------------------------------------------------------------------------------------------------------------------

File(String pathname) 根据指定的路径创建File对象。
File(String parent, String child) 根据指定的父文件夹和子文件或者文件夹创建File对象
File(File parent, String child) 根据指定的父文件夹对象和子文件或者文件夹创建File对象


二、函数------------------------------------------------------------------------------------------------------------------

public boolean createNewFile() 创建文件:如果指定的文件不存在,就创建。如果存在,就不创建。
public boolean mkdir() 创建文件夹:创建指定的目录,如果存在,就不创建。
public boolean mkdirs() 创建文件夹:创建指定的目录,如果存储,就不创建。这个时候,如果父目录不存在,它也会自动创建。
public boolean delete() 删除文件/文件夹,文件夹必须保证文件夹内不存在文件/文件夹
public boolean exists() 判断file对象是否存在
public boolean isFile() 判断file对象是否是文件
public boolean isDirectory() 判断file对象是否是文件夹
public boolean isAbsolute() 判断file对象是否是绝对路径
public boolean canRead() 判断file对象是否可读
public boolean canWrite() 判断file对象是否可写
public boolean isHidden() 判断file对象是否隐藏
public String[] list(FilenameFilter filter) 过滤器


1、案例:创建对象-----------------------------------------------------------------------------------------------------------------------------

 File既可以表示文件,也可以表示文件夹。(目录)
 构造方法:
 仅仅创建对象,非文件
 File(String pathname):根据指定的路径创建File对象。
 File(String parent, String child):根据指定的父文件夹和子文件或者文件夹创建File对象
 File(File parent, String child):根据指定的父文件夹对象和子文件或者文件夹创建File对象
 

//创建方式
// 方式1
File file = new File("d:\\a.txt");//文件
File file2 = new File("d:\\aaa"); //文件夹

// 方式2
File file3 = new File("d:\\", "a.txt");
File file4 = new File("d:\\", "aaa");

// 方式3
File file5 = new File("d:\\");
File file6 = new File(file5, "a.txt");
File file7 = new File(file5, "aaa");

参考资料:http://blog.csdn.net/chindroid/article/details/7735832/
如果要考虑跨平台,则最好是这么写:c:\\tmp\\test.txt 
File file8 = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");

separatorChar/separator 在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\'
pathSeparatorChar/pathSeparator 在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'


2、案例:创建实体-------------------------------------------------------------------------------------------------------------------------------

public boolean createNewFile() 创建文件:如果指定的文件不存在,就创建。如果存在,就不创建。
public boolean mkdir() 创建文件夹:创建指定的目录,如果存在,就不创建。
public boolean mkdirs() 创建文件夹:创建指定的目录,如果存储,就不创建。这个时候,如果父目录不存在,它也会自动创建。

  // 创建文件
File file = new File("d:\\a.txt");
file.createNewFile()

// 创建文件 忘了写路径名称了,以当前项目路径所在路径为父目录
File file2 = new File("a.txt");
 file2.createNewFile()

// 创建目录
File file3 = new File("aaa");
file3.mkdir()

// 创建多层目录下的文件/文件夹,可以避免目录可能不存在,导致报异常
File file4 = new File("bbb\\ccc");
file4.mkdirs()


3、案例:删除文件/文件夹----------------------------------------------------------------------------------------------------------------

public boolean delete() 删除文件/文件夹,文件夹必须保证文件夹内不存在文件/文件夹

A:如果你删除的目录下还有内容,那么,必须先把所有内容删除完毕后,在删除目录。
B:java语言的删除不走回收站。

 

// 需求:我要删除a.txt
File file = new File("a.txt");
file.delete()

// 需求:我要删除aaa
File file2 = new File("aaa");
file2.delete()

// 需求:我要删除bbb
File file3 = new File("bbb");
file3.delete()


4、案例:过滤器--------------------------------------------------------------------------------------------------------------------------

public String[] list(FilenameFilter filter)

 * A:先获取指定目录下所有文件或者文件夹的File数组,然后再遍历的时候进行判断。满足条件的就输出该File的名称。
 * B:直接获取指定目录下满足条件的String(File)数组。然后遍历数组即可。

// 封装目录
File file = new File("d:\\");

// 获取满足条件的数组
String[] strArray = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// 判断是否是文件,是否是以.mp4结尾
File file = new File(dir, name); // d:\我的文档
boolean flag = file.isFile();
boolean flag2 = name.endsWith(".mp4");
return flag && flag2;
}
});

// 遍历字符串数组
for (String str : strArray) {
System.out.println(str);
}

参考资料:http://blog.csdn.net/chindroid/article/details/7735832/
如果要考虑跨平台,则最好是这么写:c:\\tmp\\test.txt 
File file8 = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");

separatorChar/separator 在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\'
pathSeparatorChar/pathSeparator 在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'

1 0