JavaIO学习之File类



File

作用:

1.用来将文件或者文件夹封装成对象。

2.方便对文件与文件夹的属性进行操作。

3.File对象可以作为参数传递给流的构造函数。

 

IO流的流对象只能操作设备上的数据。

 

文件属性的操作和文件夹的创建,删除由File类完成。

 

File

字段摘要

static String

pathSeparator 
          与系统有关的路径分隔符,为了方便,它被表示为一个字符串。

static char

pathSeparatorChar 
          与系统有关的路径分隔符。

static String

separator 
          与系统有关的路径分隔符。此字段被初始为包含系统属性 path.separator 值的第一个字符。此字符用于分隔以路径列表 形式给定的文件序列中的文件名。在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';

 

static char

separatorChar 
          与系统有关的默认名称分隔符。

构造方法摘要

File(File parent, String child) 
          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

 

File(String pathname) 
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

 

File(String parent, String child) 
          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

 

File(URI uri) 
          通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。

 

 

 

 

方法摘要

 boolean

canExecute() 
          测试应用程序是否可以执行此抽象路径名表示的文件。

 boolean

canRead() 
          测试应用程序是否可以读取此抽象路径名表示的文件。

 boolean

canWrite() 
          测试应用程序是否可以修改此抽象路径名表示的文件。

 int

compareTo(File pathname) 
          按字母顺序比较两个抽象路径名。

 boolean

createNewFile() 
          当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

static File

createTempFile(String prefix, String suffix) 
          在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。

static File

createTempFile(String prefix, String suffix, File directory) 
           在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。

 boolean

delete() 
          删除此抽象路径名表示的文件或目录。

 void

deleteOnExit() 
          在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

 boolean

equals(Object obj) 
          测试此抽象路径名与给定对象是否相等。

 boolean

exists() 
          测试此抽象路径名表示的文件或目录是否存在。

 File

getAbsoluteFile() 
          返回此抽象路径名的绝对路径名形式。

 String

getAbsolutePath() 
          返回此抽象路径名的绝对路径名字符串。

 File

getCanonicalFile() 
          返回此抽象路径名的规范形式。

 String

getCanonicalPath() 
          返回此抽象路径名的规范路径名字符串。

 long

getFreeSpace() 
          返回此抽象路径名指定的分区中未分配的字节数。

 String

getName() 
          返回由此抽象路径名表示的文件或目录的名称。

 String

getParent() 
          返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null

 File

getParentFile() 
          返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null

 String

getPath() 
          将此抽象路径名转换为一个路径名字符串。

 long

getTotalSpace() 
          返回此抽象路径名指定的分区大小。

 long

getUsableSpace() 
          返回此抽象路径名指定的分区上可用于此虚拟机的字节数。

 int

hashCode() 
          计算此抽象路径名的哈希码。

 boolean

isAbsolute() 
          测试此抽象路径名是否为绝对路径名。

 boolean

isDirectory() 
          测试此抽象路径名表示的文件是否是一个目录。

 boolean

isFile() 
          测试此抽象路径名表示的文件是否是一个标准文件。

 boolean

isHidden() 
          测试此抽象路径名指定的文件是否是一个隐藏文件。

 long

lastModified() 
          返回此抽象路径名表示的文件最后一次被修改的时间。

 long

length() 
          返回由此抽象路径名表示的文件的长度。

 String[]

list() 
          返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

 String[]

list(FilenameFilter filter) 
          返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。

 File[]

listFiles() 
          返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

 File[]

listFiles(FileFilter filter) 
          返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

 File[]

listFiles(FilenameFilter filter) 
          返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

static File[]

listRoots() 
          列出可用的文件系统根。

 boolean

mkdir() 
          创建此抽象路径名指定的目录。

 boolean

mkdirs() 
          创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

 boolean

renameTo(File dest) 
          重新命名此抽象路径名表示的文件。

 boolean

setExecutable(boolean executable) 
          设置此抽象路径名所有者执行权限的一个便捷方法。

 boolean

setExecutable(boolean executable, boolean ownerOnly) 
          设置此抽象路径名的所有者或所有用户的执行权限。

 boolean

setLastModified(long time) 
          设置此抽象路径名指定的文件或目录的最后一次修改时间。

 boolean

setReadable(boolean readable) 
          设置此抽象路径名所有者读权限的一个便捷方法。

 boolean

setReadable(boolean readable, boolean ownerOnly) 
          设置此抽象路径名的所有者或所有用户的读权限。

 boolean

setReadOnly() 
          标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。

 boolean

setWritable(boolean writable) 
          设置此抽象路径名所有者写权限的一个便捷方法。

 boolean

setWritable(boolean writable, boolean ownerOnly) 
          设置此抽象路径名的所有者或所有用户的写权限。

 String

toString() 
          返回此抽象路径名的路径名字符串。

 URI

toURI() 
          构造一个表示此抽象路径名的 file: URI。

 URL

toURL() 
          已过时。 此方法不会自动转义 URL 中的非法字符。建议新的代码使用以下方式将抽象路径名转换为 URL:首先通过 toURI 方法将其转换为 URI,然后通过 URI.toURL 方法将 URI 装换为 URL。

 

 

/** 

 * Fileconstructor演示 

 */

 

package cn.test.filedemo;

import java.io.File;

 

public class FileDemo {

public static void main(String[] args) {

//File类构造函数演示

constructorDemo();

}

 

private static void constructorDemo() {

String pathname ="a.txt";

//讲一个已存在的,或者不存在的文件或者目录封装成对象

File file1 = new File(pathname );

File file2 = new File("c:\\","a.txt");

File file3 = new File("c:\\");

File file4 = new File(file3,"a.txt");

//文件路径分隔符的使用

File f5 = new File("c:"+File.separator+"abc"+File.separator+"a.txt");

}

}

 

File的方法演示

/**

 * File的方法演示

 * 1.获取

 *  1.1获取文件名称 getName()

 *  1.2获取文件路径 getAbsolutePath()getPath()

 *  1.3获取文件大小 length()

 *  1.4获取文件的修改时间 lastModified()

 * 2.创建与删除

 *  创建文件

 * 3.判断

 *  要删除文件,需要先判断文件是否存在,判断文件是否可以读写等。

 * 4.文件重命名

 * 5.文件系统根目录 可以知道可用的磁盘标示和可用空间

 * 6.获取目录内容

 * 

 */

package cn.test.filedemo;

 

import java.io.File;

import java.util.Date;

 

public class FileMethodDemo {

public static void main(String[] args) throws Exception {

//getDemo();

//mkdir();

//judge();

//rename();

//listRoots();

list();

}

/*获取到的是当前目录下的所有文件夹和文件,包含隐藏文件

调用list方法的File对象中封装的必须是目录

否则会发生空指针异常  java.lang.NullPointerException

如果是隐藏目录,也会出现空指针异常

如果目录存在但是没有内容,会返回一个长度为0的数组

*/

private static void list() {

// TODO Auto-generated method stub

File file = new File("d:\\");

String []names = file.list();

for (String name : names) {

System.out.println(name);

}

}

//获取文件系统根目录

private static void listRoots() {

// TODO Auto-generated method stub

//可以获取到电脑上的可操作磁盘标示

File []files = File.listRoots();

for (File file : files) {

/*

 * C:\

D:\

E:\

F:\

 * 

 */

System.out.println(file);

}

File file = new File("c:\\");

System.out.println(file.getUsableSpace());

//获取某个磁盘可用空间

System.out.println(file.getFreeSpace());

System.out.println(file.getTotalSpace());

}

//文件重命名

private static void rename() {

// TODO Auto-generated method stub

File file = new File("aa.txt");

File file2 = new File("cc.txt");

boolean rename = file.renameTo(file2);

}

//文件判断

private static void judge() {

// TODO Auto-generated method stub

//最好判断文件是否存在,在对文件进行操作

File f = new File("aa.txt");

//判断文件是否可读

boolean read = f.canRead();

//判断文件是否可以写

boolean write = f.canWrite();

//判断文件是否可执行

boolean execute = f.canExecute();

//判断是否是文件

boolean file = f.isFile();

//判断文件是否是隐藏文件

boolean hidden = f.isHidden();

//判断是否是目录

boolean directory = f.isDirectory();

//是否是绝对路径

boolean abs = f.isAbsolute();

}

//创建文件和删除

private static void mkdir() throws Exception {

// TODO Auto-generated method stub

File file = new File("bb.txt");

//创建新文件,如果文件不存在,创建文件,如果文件存在, 则不创建文件。

boolean b = file.createNewFile();

//删除文件,删除成功返回true否则返回false

//window的的删除是从里向外删除的,如果文件正在被流使用,则无法删除该文件

boolean delete = file.delete();

//凡是以can或者is开头的方法,都是作为判断的方法

//创建目录 

boolean dir = file.mkdir();

}

//文件属性的获取

private static void getDemo() {

File file = new File("e:\\java\\aa.txt");

//获取文件名

String name = file.getName();

System.out.println(name);

//获取文件所在的绝对路径

String abspath = file.getAbsolutePath();

System.out.println(abspath);

//获取文件所在相对路径

String path = file.getPath();

System.out.println(path);

//获取文件大小

long len = file.length();

//获取文件最后修改时间

long time = file.lastModified();

Date date = new Date(time);

}

}

 

//获取指定文件目录中某一类型的文件

package cn.test.filedemo;

 

import java.io.File;

import java.io.FilenameFilter;

/**

 * 获取指定文件目录下指定文件类型的文件

 *  1.实现FilenameFilter接口

 *  2.重写accept方法

accept方法会被调用很多次

 * 

 */

 

public class FilterByName implements FilenameFilter{

 

@Override

public boolean accept(File dir, String name) {

// TODO Auto-generated method stub

return name.endsWith(".java");

}

public static void main(String[] args) {

File dir = new File("c:\\");

String[] names = dir.list(new FilterByName());

for (String name : names) {

System.out.println(name);

}

}

}

 

Flie文件的过滤器很重要

你可能感兴趣的:(Java学习)