Java.io包中,File类是唯一一个与文件本身操作(创建、删除、取得信息)有关,与文件内容无关的程序类。
1.File类的基本使用(即可描述真实文件,也可是个文件夹)
File类的两种实例化方式:
- public File(String pathname) :传入文件的绝对路径
- public File(String parent,String child):设置父路径和子路径
1. 创建新文件:
public boolean createNewFile() throws IOException
1.取得file对象
File file = new File("路径\创建的文件名(JavaIO)");
file.createNewFile();
2. 判断文件是否存在:
public boolean exists()
if(file.exists()){
...
}
3. 删除文件:
public boolean delete()
if(file.exist()){ //首先需要判断文件是否存在,存在之后才能将其删除
file.delete();
}
4.路径分隔符: // —> File.separator
File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo"
+ File.separator + "Desktop");
2.目录操作
1.取得父路径与父File对象
public String getParent()
public File getParentFile()
2.创建目录
public boolean mkdirs() :无论有多少级父目录都会一次性创建
public class Test {
public static void main(String[] args)throws Exception {
File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo"
+ File.separator + "Desktop" + File.separator + "www"+ File.separator +"bit"+
File.separator +"java"+ File.separator +"test.txt");
//取得父文件对象
File parentFile = file.getParentFile();
if(!parentFile.exists()){ //如果文件不存在就递归创建
parentFile.mkdirs();
}
if(file.exists()){
file.delete();
}else{
file.createNewFile();
}
}
}
3.取得文件信息
- 判断File对象是否是文件
public boolean isFile() - 判断File对象是否是路径
public boolean isDirectory()
public class Solution {
public static void main(String[] args)throws Exception {
File file = new File("C:" + File.separator + "Users" + File.separator + "Lenovo"
+ File.separator + "Desktop" + File.separator + "www"+ File.separator +"bit"+
File.separator +"java"+ File.separator +"test.txt"); //File对象是文件
File parentFile = file.getParentFile(); //File对象是路径
if(!parentFile.exists()){
parentFile.mkdirs();
}
if(!file.exists()) {
file.createNewFile();
}
if(parentFile.isDirectory()){
System.out.println("patrenFile是路径");
}
if(file.isFile()){
System.out.println("file是文件");
}
}
}
输出结果:
patrenFile是路径
file是文件
- 取得文件大小
public long length() 字节/1024 :KB
System.out.println(file.length()/1024);
- 取得最后修改日期
public long lastModified()
System.out.println(new Date(file.lastModified()));
- 列举一个目录的全部组成:
public File[ ] listFiles()
File[] files = file.listFiles();
for(File file : files){
system.out.println(file)
}
时间操作:
long start = System.currentTimeMillis();
long end =System.currentTimeMillis();
IO相关处理属于阻塞式耗时操作,一般放在子线程中进行。