IO流前奏 之文件
数据在电脑中是以文件的形式存在的,即文件是数据的载体
File
构造方法:
File(String pathname)
通过给定路径名字符串转化为抽象路径名来创建一个File实例
例:
File f=new File("D:\\abc")//封装目录
File f1=new File("D:\\abc.txt") //封装文件
相对路径与绝对路径
相对路径:不带盘符号的路径,使用IDEA时,若采用相对路径生成的文件是存储在当前Project的根目录之下
绝对路径:带有盘符号的完整路径
常用方法
1.创建文件,目录
import java.io.File;
import java.io.IOException;
public class demo1 {
public static void main(String[] args) throws IOException {
File file=new File("D:\\1234.txt");
boolean b = file.createNewFile();//判断文件是否存在,若存不存在则创建并返回true,若存在则返回false
System.out.println(b);
File file1=new File("D:\\1234");
boolean b1 = file1.mkdir();//创建单级目录
System.out.println(b1);
File file2=new File("D:\\1234\\456");
boolean b2=file2.mkdirs();//创建多级目录,结果为在D盘中创建123目录在1234中创建456目录,创建成功返回true
System.out.println(b2);
}
}
true
true
true
2.删除
boolean b = file.delete();//返回值表示是否删除成功
注意:delete只能删除掉空的目录,非空无法直接用delete删除
递归删除非空文件夹
import java.io.File;
public class demo{
public static void main(String[] args) {
File file=new File("D:\\123");
digui(file);
}
private static void digui(File file) {
if (file.isFile()) {
file.delete();
}
if (file.listFiles()!=null){
File[] files = file.listFiles();
for (File file1 : files) {
digui(file1);
}
}
file.delete();
}
}
4.重命名文件
file.renameTo(new File())//重命名文件,如果使用相对路径则会将原文件改名并剪切到IDEA当前project目录下,使用绝对路径则与原文件路径一致
5.关于获得的一些操作
import java.io.File;
public class demo1 {
public static void main(String[] args) {
File file=new File("D:\\1234.txt");
String name = file.getName();//获得文件名
long length=file.length();//获得文件的大小
String s=file.getAbsolutePath();//获得绝对路径,返回字符串形式
File s1=file.getAbsoluteFile();//获取绝对路径,返回file类型
long l=file.lastModified();//获取文件最后的修改时间
}
}
6.判断的一些操作
import java.io.File;
public class demo1 {
public static void main(String[] args) {
File file=new File("D:\\1234.txt");
boolean b=file.isDirectory();//判断是否是目录
boolean b1=file.isFile();//判断是否是文件
boolean b2=file.canRead();//判断是否可读
boolean b3=file.canWrite();//判断是否可以写
boolean b4=file.canExecute();//判断是否是可执行文件
boolean b5=file.isHidden();//判断文件是否是隐藏的
}
}
注意:
win系统中所有文件类型都是可执行的,所以不论使用什么类型的文件来测试canExecute()方法得到的返回值都是true
7.获取目录下所有的内容
import java.io.File;
public class demo1 {
public static void main(String[] args) {
File file=new File("D:\\1234.txt");
File[] files = file.listFiles();//将目录下的所有内容以file形式存入数组中
String[] list = file.list();//将目录下所有的内容放以字符串形式入一个数组中
}
}
该方法中可以传入一个过滤器参数,来过滤出想要的文件类型
例:使用过滤器筛选出txt文件
import java.io.File;
import java.io.FilenameFilter;
public class demo1 {
public static void main(String[] args) {
File file=new File("D:\\1234.txt");
file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//dir 父目录 name 文件名
File f=new File(dir,name);
if (f.isFile()&&f.getName().endsWith(".txt")){
return true;
}else {
return false;
}
}
});
}
}