File类是io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法,实现创建、删除、重命名文件等。File类的对象主要用来获取文件本身的一些信息,如文件所在目录、文件的长度、文件读写权限等。数据流可以将数据写入到文件中,而文件也是数据流最常用的数据媒体。
1、文件的创建与删除
可以使用File类创建一个文件对象,File类构造方法:
(1)File(String pathname)
该构造方法通过将给定路径名字字符串转换为抽象路径来创建一个新File实例。
new File(String pathname)
pathname:是指路径名(包含文件名)
File file = new File("D:/test.txt")或者 File file =new File("D:\\test.txt")
(2)File(String parent ,String child)
该构造方法根据定义的父路径和子路径字符串(包含文件名)创建一个新的File实例。
(3)File(File f ,String child)
该构造方法根据parent抽象路径名和child路径名字符串创建一个新File实例。
使用File类创建一个文件对象:File file = new File("D:/myword","word.txt");
如果D:/myword目录中没有名称为word的文件,File类对象可通过调用createNewFile()方法创建一个名称为word.txt的文件;如果word.txt文件存在,可以通过文件对象的delete()方法将其删除。
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) {
File file = new File("D:\\test","test6.txt");
if(file.exists()){
file.delete() ;
System.out.println("文件已删除!");
}else {
try {
file.createNewFile() ;
System.out.println("文件已创建!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2、获取文件信息
File类提供了很多用于获取文件本身的一些信息,常用方法:
方法 | 描述 |
String getName() | 获取文件的名称 |
boolean canRead() | 判断文件是否是可读的 |
boolean canWrite() | 品判断文件是否可被写入 |
boolean exits() | 判断文件长度是否存在 |
int length() | 获取文件的长度(以字节为单位) |
String getAbsolutePath() | 获取文件的绝对路径 |
String getParent() | 获取文件的父路径 |
boolean isFile() | 判断此抽象路径名表示的文件是否为普通文件 |
boolean isDirectory() | 判断此抽象路径名表示的是否是一个目录 |
boolean isHidden | 判断文件是否是隐藏文件 |
long lastModified() | 获取文件最后修改时间 |
Boolean canExecute() | 测试应用程序是否可以执行此抽象路径名表示的文件。 |
boolean createNewFile() | 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。 |
boolean delete() | 删除由此抽象路径名表示的文件或目录。 |
File[] listFiles() | 返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。 |
String[] list() | 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。 |
boolean mkdirs() | 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。可创建多层文件包 |
boolean mkdir() | 创建由此抽象路径名命名的目录。只能创建一层文件包 |
boolean reNameTo(File dest) | 重命名由此抽象路径名表示的文件。 |
boolean setReadOnly() | 标记由此抽象路径名命名的文件或目录,以便只允许读取操作。 |
boolean setWritable(boolean writable) | 一种方便的方法来设置所有者对此抽象路径名的写入权限。 |
还没有评论,来说两句吧...