IO技术概述
- Output 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作
- Input 把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作
- 把上面的这种输入和输出动作称为IO操作
File类
Modifier and Type | Method and Description |
---|---|
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()
返回分区未分配的字节数
named此抽象路径名。
|
String |
getName()
返回由此抽象路径名表示的文件或目录的名称。
|
String |
getParent()
返回此抽象路径名的父
null 的路径名字符串,如果此路径名未命名为父目录,则返回null。
|
File |
getParentFile()
返回此抽象路径名的父,或抽象路径名
null 如果此路径名没有指定父目录。
|
String |
getPath()
将此抽象路径名转换为路径名字符串。
|
long |
getTotalSpace()
通过此抽象路径名返回分区
named的大小。
|
long |
getUsableSpace()
返回上的分区提供给该虚拟机的字节数
named此抽象路径名。
|
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)
设置此抽象路径名的所有者或每个人的写入权限。
|
Path |
toPath()
返回从此抽象路径构造的 java.nio.file.Path 对象。
|
String |
toString()
返回此抽象路径名的路径名字符串。
|
URI |
toURI()
构造一个表示此抽象路径名的
file: URI。
|
URL |
toURL()
已弃用
此方法不会自动转义URL中非法的字符。
建议在新的代码转换的抽象路径到URL通过先转换成URI,经由
toURI 方法,然后经由转换URI为URL URI.toURL 方法。
|
File类静态的成员变量
- pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串
- separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串
//File类静态成员变量
//与系统有关的路径分隔符
String separator = File.pathSeparator;
System.out.println(separator);// 是一个分号,目录的分割(window中环境变量配置各个路径用分号分割,表示一个完整的路径结束) Linux中是冒号 :
//与系统有关的默认名称分隔符
separator = File.separator;
System.out.println(separator);// 向右 \ 目录名称分割 Linux /
File类构造方法
/*
* File(String pathname)
* 传递路径名: 可以写到文件夹,可以写到一个文件
* c:\\abc c:\\abc\\Demo.java
* 将路径封装File类型对象
*/
File file = new File("d:\\eclipse");
System.out.println(file);
/*
* File(String parent,String child)
* 传递路径,传递字符串父路径,字符串子路径
* 好处: 单独操作父路径和子路径
*/
File file = new File("d:","eclipse");
System.out.println(file);
/*
* File(File parent,String child)
* 传递路径,传递File类型父路径,字符串子路径
* 好处: 父路径是File类型,父路径可以直接调用File类方法
*/
File parent = new File("d:");
File file = new File(parent,"eclipse");
System.out.println(file);
相对路径和绝对路径
- 绝对路径 绝对路径是一个固定的路径,从盘符开始
在系统中具有唯一性
c:\\windows\\system32
- 相对路径 相对路径相对于某个位置
表示路径之间的关系
D:\\develop\\Java\\jdk1.7.0_72\\bin
D:\\develop\\Java\\jre7
File类创建文件功能
- public boolean createNewFile() 创建文件 如果存在这样的文件,就不创建了
/*
* File创建文件的功能
* boolean createNewFile()
* 创建的文件路径和文件名,在File构造方法中给出
* 文件已经存在了,不在创建
*/
File file = new File("c:\\a.txt");
boolean b = file.createNewFile();
System.out.println(b);
File类创建目录功能
- public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
- public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
/*
* File创建文件夹功能
* boolean mkdirs() 创建多层文件夹
* 创建的路径也在File构造方法中给出
* 文件夹已经存在了,不在创建
*/
File file = new File("c:\\abc");
boolean b = file.mkdirs();
System.out.println(b);
File类删除功能
- public boolean delete():删除文件或者文件夹
/*
* File类的删除功能
* boolean delete()
* 删除的文件或者是文件夹,在File构造方法中给出
* 删除成功返回true,删除失败返回false
*/
File file = new File("c:\\a.txt");
boolean b = file.delete();
System.out.println(b);
File类获取功能
- String getName(): 返回路径中表示的文件或者文件夹名
- long length(): 返回路径中表示的文件的字节数
- String getAbsolutePath(): 获取绝对路径,返回String对象
- File getAbsoluteFile() : 获取绝对路径,返回File对象
- String getParent(): 获取父路径,返回String对象
- File getParentFile(): 获取父路径,返回File对象
- String[] list():获取到File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)
- File[] listFiles():获取到,File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)
- static File[] listRoots(): 列出可用的文件系统根
/*
* String getName()
* 返回路径中表示的文件或者文件夹名
* 获取路径中的最后部分的名字
*/
File file = new File("d:\\eclipse\\eclipse.exe");
String name = file.getName();
System.out.println(name);
/*
* long length()
* 返回路径中表示的文件的字节数
*/
File file = new File("d:\\eclipse\\eclipse.exe");
long length = file.length();
System.out.println(length);
/*
* String getAbsolutePath() 返回String对象
* File getAbsoluteFile() 返回File对象
* 获取绝对路径
*/
File file = new File("src");
File absolute = file.getAbsoluteFile();
System.out.println(absolute);
/*
* String getParent() 返回String对象
* File getParentFile()返回File对象
* 获取父路径
*/
File file = new File("d:\\eclipse\\eclipse.exe");
File parent = file.getParentFile();
System.out.println(parent);
/*
* File类的获取功能
* String[] list()
* 获取到,File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)
* 返回只有名字
*/
File file = new File("c:");
String[] strArr = file.list();
System.out.println(strArr.length);
for(String str : strArr){
System.out.println(str);
}
/*
* File类的获取功能
* File[] listFiles()
* 获取到,File构造方法中封装的路径中的文件和文件夹名 (遍历一个目录)
* 返回的是目录或者文件的全路径
*/
File file = new File("d:\\eclipse");
File[] fileArr = file.listFiles();
for(File f : fileArr){
System.out.println(f);
}
//获取系统中的所有根目录
File[] fileArr = File.listRoots();
for(File f : fileArr){
System.out.println(f);
}
File类判断功能
- boolean exists(): 判断File构造方法中封装路径是否存在 存在返回true,不存在返回false
- boolean isDirectory(): 判断File构造方法中封装的路径是不是文件夹 如果是文件夹,返回true,不是文件返回false
- boolean isFile(): 判断File构造方法中封装的路径是不是文件 如果是文件,返回true,不是文件返回false
/*
* File判断功能
* boolean exists()
* 判断File构造方法中封装路径是否存在
* 存在返回true,不存在返回false
*/
File file = new File("src");
boolean b = file.exists();
System.out.println(b);
/*
* File判断功能
* boolean isDirectory()
* 判断File构造方法中封装的路径是不是文件夹
*
* boolean isFile()
* 判断File构造方法中封装的路径是不是文件
*/
File file = new File("d:\\eclipse\\eclipse.exe");
if(file.exists()){
boolean a = file.isDirectory();
boolean b = file.isFile();
}
System.out.println(a);
System.out.println(b);
文件过滤器
- 过滤一个目录下的指定扩展名的文件,或者包含某些关键字的文件夹
- public String[] list(FilenameFilter filter)
- public File[] listFiles(FileFilter filter)
/*
* pathname 接受到的也是文件的全路径
* c:\\demo\\1.txt
* 对路径进行判断,如果是java文件,返回true,不是java文件,返回false
* 文件的后缀结尾是.java
*/
public class MyFilter implements FileFilter{
public boolean accept(File pathname) {
return pathname.getName().endsWith(".java");
}
}
/*
* File类的获取,文件获取过滤器
* 遍历目录的时候,可以根据需要,只获取满足条件的文件
* 遍历目录方法 listFiles()重载形式
* listFiles(FileFilter filter)接口类型
* 传递FileFilter接口的实现类
* 自定义FileFilter接口实现类,重写抽象方法,
* 接口实现类对象传递到遍历方法listFiles
*/
File file = new File("c:\\demo");
File[] fileArr = file.listFiles(new MyFilter());
for(File f : fileArr){
System.out.println(f);
}
最后一次更新于2019-07-15 15:33
0 条评论