File类是java.io包下表明与平台无关的文件和目录,也就是说,若是但愿在程序中操做文件和目录,均可以经过File类来完成。值得指出的是,无论是文件仍是目录都是使用File来操做的,File能新建、删除、重命名文件和目录,File不能访问文件内容自己。若是须要访问文件内容自己,则须要使用输入/输出流。html
File类相关的方法参考连接:https://docs.oracle.com/javase/9/docs/api/overview-summary.htmljava
Modifier and Type | Field | Description |
---|---|---|
static String |
pathSeparator |
The system-dependent path-separator character, represented as a string for convenience.
|
static char |
pathSeparatorChar |
The system-dependent path-separator character.
|
static String |
separator |
The system-dependent default name-separator character, represented as a string for convenience.
|
static char |
separatorChar |
The system-dependent default name-separator character.
|
Constructor | Description |
---|---|
File(File parent, String child) |
Creates a new
File instance from a parent abstract pathname and a child pathname string.
|
File(String pathname) |
Creates a new
File instance by converting the given pathname string into an abstract pathname.
|
File(String parent, String child) |
Creates a new
File instance from a parent pathname string and a child pathname string.
|
File(URI uri) |
Creates a new
File instance by converting the given
file: URI into an abstract pathname.
|
Modifier and Type | Method | Description |
---|---|---|
boolean |
canExecute() |
Tests whether the application can execute the file denoted by this abstract pathname.
|
boolean |
canRead() |
Tests whether the application can read the file denoted by this abstract pathname.
|
boolean |
canWrite() |
Tests whether the application can modify the file denoted by this abstract pathname.
|
int |
compareTo(File pathname) |
Compares two abstract pathnames lexicographically.
|
boolean |
createNewFile() |
Atomically creates a new, empty file named by this abstract pathname if and only if a file with this name does not yet exist.
|
static File |
createTempFile(String prefix,String suffix) |
Creates an empty file in the default temporary-file directory, using the given prefix and suffix to generate its name.
|
static File |
createTempFile(String prefix,String suffix,File directory) |
Creates a new empty file in the specified directory, using the given prefix and suffix strings to generate its name.
|
boolean |
delete() |
Deletes the file or directory denoted by this abstract pathname.
|
void |
deleteOnExit() |
Requests that the file or directory denoted by this abstract pathname be deleted when the virtual machine terminates.
|
boolean |
equals(Object obj) |
Tests this abstract pathname for equality with the given object.
|
boolean |
exists() |
Tests whether the file or directory denoted by this abstract pathname exists.
|
File |
getAbsoluteFile() |
Returns the absolute form of this abstract pathname.
|
String |
getAbsolutePath() |
Returns the absolute pathname string of this abstract pathname.
|
File |
getCanonicalFile() |
Returns the canonical form of this abstract pathname.
|
String |
getCanonicalPath() |
Returns the canonical pathname string of this abstract pathname.
|
long |
getFreeSpace() |
Returns the number of unallocated bytes in the partition
named by this abstract path name.
|
String |
getName() |
Returns the name of the file or directory denoted by this abstract pathname.
|
String |
getParent() |
Returns the pathname string of this abstract pathname's parent, or
null if this pathname does not name a parent directory.
|
File |
getParentFile() |
Returns the abstract pathname of this abstract pathname's parent, or
null if this pathname does not name a parent directory.
|
String |
getPath() |
Converts this abstract pathname into a pathname string.
|
long |
getTotalSpace() |
Returns the size of the partition
named by this abstract pathname.
|
long |
getUsableSpace() |
Returns the number of bytes available to this virtual machine on the partition
named by this abstract pathname.
|
int |
hashCode() |
Computes a hash code for this abstract pathname.
|
boolean |
isAbsolute() |
Tests whether this abstract pathname is absolute.
|
boolean |
isDirectory() |
Tests whether the file denoted by this abstract pathname is a directory.
|
boolean |
isFile() |
Tests whether the file denoted by this abstract pathname is a normal file.
|
boolean |
isHidden() |
Tests whether the file named by this abstract pathname is a hidden file.
|
long |
lastModified() |
Returns the time that the file denoted by this abstract pathname was last modified.
|
long |
length() |
Returns the length of the file denoted by this abstract pathname.
|
String[] |
list() |
Returns an array of strings naming the files and directories in the directory denoted by this abstract pathname.
|
String[] |
list(FilenameFilter filter) |
Returns an array of strings naming the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.
|
File[] |
listFiles() |
Returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname.
|
File[] |
listFiles(FileFilter filter) |
Returns an array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.
|
File[] |
listFiles(FilenameFilter filter) |
Returns an array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter.
|
static File[] |
listRoots() |
List the available filesystem roots.
|
boolean |
mkdir() |
Creates the directory named by this abstract pathname.
|
boolean |
mkdirs() |
Creates the directory named by this abstract pathname, including any necessary but nonexistent parent directories.
|
boolean |
renameTo(File dest) |
Renames the file denoted by this abstract pathname.
|
boolean |
setExecutable(boolean executable) |
A convenience method to set the owner's execute permission for this abstract pathname.
|
boolean |
setExecutable(boolean executable, boolean ownerOnly) |
Sets the owner's or everybody's execute permission for this abstract pathname.
|
boolean |
setLastModified(long time) |
Sets the last-modified time of the file or directory named by this abstract pathname.
|
boolean |
setReadable(boolean readable) |
A convenience method to set the owner's read permission for this abstract pathname.
|
boolean |
setReadable(boolean readable, boolean ownerOnly) |
Sets the owner's or everybody's read permission for this abstract pathname.
|
boolean |
setReadOnly() |
Marks the file or directory named by this abstract pathname so that only read operations are allowed.
|
boolean |
setWritable(boolean writable) |
A convenience method to set the owner's write permission for this abstract pathname.
|
boolean |
setWritable(boolean writable, boolean ownerOnly) |
Sets the owner's or everybody's write permission for this abstract pathname.
|
Path |
toPath() |
Returns a
java.nio.file.Path object constructed from the this abstract path.
|
String |
toString() |
Returns the pathname string of this abstract pathname.
|
URI |
toURI() |
Constructs a
file: URI that represents this abstract pathname.
|
URL |
toURL() |
一、访问文件和目录 api
1 package com.zyjhandsome.io; 2 3 import java.io.*; 4 5 public class FileTest { 6 7 public static void main(String[] args) throws IOException 8 { 9 // 以当前路径来建立一个File对象 10 File file = new File("."); 11 // 直接获取文件名, 输出一点 12 System.out.println(file.getName()); 13 // 获取相对路径的父路径可能出错, 下面代码输出null 14 System.out.println(file.getParent()); 15 // 获取绝对路径 16 System.out.println(file.getAbsoluteFile()); 17 // 获取绝对路径 18 System.out.println(file.getAbsoluteFile().getParent()); 19 // 当前路径下建立一个临时文件 20 File tmpFile = File.createTempFile("aaa", ".txt", file); 21 // 指定当JVM退出时候删除该文件 22 tmpFile.deleteOnExit(); 23 // 以系统当前时间做为新文件名来建立新文件 24 File newFile = new File(System.currentTimeMillis() + ""); 25 System.out.println("newFile对象是否存在1: " + newFile.exists()); 26 // 以指定newFile对象来建立一个文件 27 newFile.createNewFile(); 28 System.out.println("newFile对象是否存在2: " + newFile.exists()); 29 // 以newFile对象来建立一个目录,由于newFile已经存在,因此下面方法返回false, 即没法建立该目录 30 System.out.println("newFile.mkdir():" + newFile.mkdir()); 31 System.out.println("----------------------"); 32 // 使用list()方法列出当前路径下的全部文件和路径 33 String[] fileList = file.list(); 34 for (String fileName : fileList) 35 { 36 System.out.println(fileName); 37 } 38 System.out.println("----------------------"); 39 // listRoots()静态方法列出全部的磁盘根路径 40 File[] roots = File.listRoots(); 41 System.out.println("====系统全部根路径以下===="); 42 for (File root : roots) 43 { 44 System.out.println(root); 45 } 46 } 47 }
1 . 2 null 3 D:\zhaoyingjun\eclipse-workspace\CollectionTest\. 4 D:\zhaoyingjun\eclipse-workspace\CollectionTest 5 newFile对象是否存在1: false 6 newFile对象是否存在2: true 7 newFile.mkdir():false 8 ---------------------- 9 .classpath 10 .project 11 .settings 12 1537712414564 13 1537712424492 14 1537712893895 15 1537712926829 16 1537712940906 17 1537713158525 18 1537713167968 19 1537774060515 20 aaa1610208071466755969.txt 21 bin 22 src 23 ---------------------- 24 ====系统全部根路径以下==== 25 C:\ 26 D:\
二、文件过滤器oracle
在File类的list()方法中能够接收一个FilenameFilter参数,经过该参数能够只列出符合条件的文件。这里的FilenameFilter接口和javax.swing.filechooser包下的FileFilter抽象类的功能很是类似,能够把FileFilter当成是FilenameFilter的实现类。app
FilenameFilter接口里包含了一个accept(File dir, String name)方法,该方法将依次对指定File的全部子目录或者文件进行迭代,若是该方法返回true,则list()方法会列出该子目录或者文件。eclipse
1 package com.zyjhandsome.io; 2 3 import java.io.*; 4 5 public class FilenameFilterTest { 6 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 File file = new File("."); 10 // 使用Lambda表达式(目标类型是FilenameFilter)实现文件过滤器 11 // 若是文件名以.java结尾, 或者文件对应一个路径,则返回true 12 String[] nameList = file.list((dir, name) -> 13 name.endsWith(".java") || new File(name).isDirectory()); 14 for (String name : nameList) 15 { 16 System.out.println(name); 17 } 18 } 19 }
1 .settings 2 bin 3 src