File类
1. 在java程序和存储介质上的文件或文件夹建立起联系,File并不是指文件或文件夹本身,也不能通过File直接读取或写入文件(即操作文件内容),需要通过IO流来操作文件内容。
2. 两个常量
(1).路径分隔符 ;
File.pathSeparator File.pathSeparatorChar
(2).名称分隔符 \ (Windows) / (Linux等)
File.separator File.separatorChar
3. 路径的表示形式
(1),String path ="D:\\IOtest\\pictrue\\1.jpg";
不推荐使用
(2).path ="D:" + File.separator + "IOtest" + File.separator +"picture" + File.separator + "1.jpg";
在动态生成的时候使用,代码可能会要在多个平台上使用的时候
(3).path ="D:/IOtest/pictrue/1.jpg";
推荐使用
4.File对象的构造
(1).相对路径
File(String parent, String child)
File(File parent, String child)
String parent ="D:/IOtest/pictrue";
String name ="1.jpg";
File file = newFile(parent,name);
file =new File(new File(parent),name);
(2).绝对路径
File(String pathname)
file= new File("D:/IOtest/pictrue/1.jpg");
注意:(1).没有盘符,以user.dir(即工作空间)构建
file = new File("1.txt");
System.out.println(file.getAbsolutePath());
(2). 点表示当前工作空间
5. 常用方法
文件名
(1). getName() 返回文件名称
(2). getPath() 如果是绝对路径,则返回完整的绝对路径,否则返回相对路径
(3). getAbsolutePath() 返回绝对路径
(4). getParent() 返回上一级目录,如果是相对路径,则返回null
判断信息
(1). exists()
(2). canRead()
(3). canWrite()
(4). isFile() 是文件
(5).isDirectory() 是文件夹
(6). isAbsolute()
长度
length() 读取出来的是字节数,如果是文件夹或文件不存在,读出来的字节数为0
创建
booleancreateNewFile() 不存在就创建文件,返回true,存在返回false
删除
boolean delete()
静态方法----创建临时文件
File createTempFile(Stringprefix, String suffix)
FilecreateTempFile(String prefix, String suffix, File directory)
要看出效果
Thread.sleep(10000);
temp.deleteOnExit(); //退出即删除
操作目录
boolean mkdir() 创建目录,必须确保父目录存在,如果不存在,则创建失败
boolean mkdirs() 创建目录,如果父目录链不存在,则都一同创建
String[ ] list() 返回文件名或目录名(文件夹名)的字符串形式
File[ ] listFiles() 返回子文件或子目录的File对象
static File[ ] listRoots()
//命令设计模式
File[ ] listFiles(FilenameFilterfilter)
File[ ] listFiles(FileFilterfilter)
String path = "D:/IOtest";
File file = new File(path);
//命令设计模式
File[] subFiles = file.listFiles(new FilenameFilter() {
@Override
/**
* dir 代表 file
* name 代表目录下每一个文件名
*/
public boolean accept(File dir, String name) {
return new File(dir,name).isFile() && name.endsWith(".java");
}
});
for (File temp : subFiles) {
System.out.println(temp.getAbsolutePath());
}
6. 输出子孙级目录或文件的名称(绝对路径)
//1、listFile()
//2、递归
public static void main(String[] args) throws IOException, InterruptedException {
String path = "D:/IOtest";
File file = new File(path);
printName(file);
}
private static void printName(File file) {
if (null == file || !file.exists())
return;
System.out.println(file.getAbsolutePath());
if (file.isDirectory()) {
for (File sub: file.listFiles()) {
printName(sub);
}
}
}
7. Windows系统关键字: con