File文件类对象
java把所有关于文件或目录的操作都封装到一个类中,而这个类就是File类。
public class File
extends Object
implements Serializable, Comparable<File>
创建File类对象
创建方法
@Test
public void test01() throws IOException {//相对路径
File file=new File("xiaomu.txt");
file.createNewFile();//添加文件
File file1=new File("meinv");
file1.mkdir();//添加单层目录
File file2=new File("shuaige/zhangsan");
file2.mkdirs();//创建多层目录
}
@Test
public void test02() throws IOException {//绝对路径
File file=new File("D:\\project\\xiaomu.txt");
file.createNewFile();//创建文件
File file1=new File("D:\\project\\meinv");
file1.mkdir();//添加单层目录
File file2=new File("D:\\project\\shuaige/zhangsan");
file2.mkdirs();//创建多层目录
}
删除
@Test
public void test03(){
File file=new File("xiaomu.txt");
file.delete();//删除文件
file.deleteOnExit();//两个删除功能一样
}
修改文件的名称
@Test
public void test04(){
File file=new File("小木.txt");
// file.renameTo(new File("小木.txt"));
file.setReadOnly();//设置只读
file.setWritable(true);//设置是否可写
}
查询
@Test
public void test05(){
File file=new File("shuaige");
//判断是否为目录
System.out.println("file.isDirectory() = " + file.isDirectory());
//获取文件名字
System.out.println("file.getName() = " + file.getName());
//获取文件父级目录
System.out.println("file.getParent() = " + file.getParent());
//获取相对路径
System.out.println("file.toPath() = " + file.toPath());
//获取绝对路径
System.out.println("file.getAbsolutePath() = " + file.getAbsolutePath());
//获取目录下的子文件名
System.out.println("Arrays.toString(file.list()) = " + Arrays.toString(file.list()));
//得到目录下的子文件对象
File[] files=file.listFiles();
for (File f:files){
String absolutePath = f.getAbsolutePath();
System.out.println("absolutePath = " + absolutePath);
}
}
查询指定目录下所有文件的名字
@Test
public void test06(){
listName(new File("D:\\project"));
}
public void listName(File file){
boolean directory = file.isDirectory();//判断是否为目录
if (directory==false){
String name = file.getName();
System.out.println("name = " + name);
}else { @Test
public void test06(){
listName(new File("D:\\project"));
}
public void listName(File file){
boolean directory = file.isDirectory();//判断是否为目录
if (directory==false){
String name = file.getName();
System.out.println("name = " + name);
}else {
File[] files = file.listFiles();//得到目录的子文件对象
for (File f : files) {
listName(f);
}
}
File[] files = file.listFiles();//得到目录的子文件对象
for (File f : files) {
listName(f);
}
}
}