package java;
import java.io.File;
import org.junit.Test;
/**
File类:
说明:
1.File可以用来表示一个文件(.txt .mp3 .avi )或者目录
2.File可以创建(删除,修改等操作)对象、目录。还可以获取对象、目录的信息。
注意 : 不能向文件中写内容或者读取内容(读写内容需要IO流)
*/
public class FileTest {
/**
* 绝对路径:包含盘符在内的完整路径
* 相对路径:相对于当前工程下
*/
@Test
public void test2(){
new File("user.txt"); //相对路径 - 一般都使用相对路径
new File("E:\\0830\\code\\day21\\user.txt"); //绝对路径
}
/**
* File表示一个文件或目录
*/
@Test
public void test(){
//表示一个文件
File file = new File("D:\\io/1.txt");
//表示一个目录
File file2 = new File("D:\\io\\ccc");
new File("D:\\io","1.txt"); //"D:/io/1.txt"
}
}
2.常用API
1.判断
public boolean isDirectory():判断是否是文件目录
public boolean isFile() :判断是否是文件
public boolean exists() :判断是否存在
public boolean canRead() :判断是否可读
public boolean canWrite() :判断是否可写
public boolean isHidden() :判断是否隐藏
2.增
public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false
public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建
3.删
public boolean delete():删除文件或者文件夹
4.改
public boolean renameTo(File dest):把文件重命名为指定的文件路径,相当于移动
4.查
public String getAbsolutePath():获取绝对路径
public File getAbsoluteFile():获取绝对路径表示的文件
public String getPath() :获取路径
public String getName() :获取名称
public String getParent():获取上层文件目录路径。若无,返回null
public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组
public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组
public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
public long lastModified() :获取最后一次的修改时间,毫秒值
具体代码
package java;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import org.junit.Test;
public class FileAPI {
/* public boolean renameTo(File dest):把文件重命名为指定的文件路径
* public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
public long lastModified() :获取最后一次的修改时间,毫秒值
*/
@Test
public void test6(){
//1.修改名字
/*
File file = new File("aaa.txt");
boolean renameTo = file.renameTo(new File("bbb.txt"));
System.out.println(renameTo);
*/
/*
//2.移动文件
File file = new File("bbb.txt");
boolean renameTo = file.renameTo(new File("D:\\io\\fff\\bbb.txt"));
System.out.println(renameTo);
*/
File file = new File("D:\\io\\fff\\bbb.txt");
System.out.println(file.length());
long time = file.lastModified();
System.out.println(time);
System.out.println(new Date(time));
}
/*
* public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建
public boolean delete():删除文件或者文件夹
*/
@Test
public void test5() throws IOException{
/*
File file = new File("D:\\io\\ddd\\aaa.txt");
//创建目录
String parent = file.getParent(); //获取父目录的路径
File parentFile = new File(parent);
if(!parentFile.exists()){
parentFile.mkdir();//创建目录
file.createNewFile();//创建文件
}
*/
System.out.println("-----------------------------------------");
File file = new File("D:\\io\\fff\\ccc");
// file.mkdir();//创建的目录的父目录不存在,则创建失败
// file.mkdirs(); //创建的目录的父目录不存在则连父目录一起创建。
file.delete();
}
/*
*
* public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false
*/
@Test
public void test4() throws Exception{
File file = new File("D:\\io\\ddd\\aaa.txt");
if(!file.exists()){
//注意 :如果文件的父目录不存在则抛异常
boolean createNewFile = file.createNewFile();
System.out.println(createNewFile);
}else{
file.delete(); //删除文件
System.out.println("----删除文件---");
}
}
/*
* public boolean isDirectory():判断是否是文件目录
public boolean isFile() :判断是否是文件
public boolean exists() :判断是否存在
public boolean canRead() :判断是否可读
public boolean canWrite() :判断是否可写
public boolean isHidden() :判断是否隐藏
*/
@Test
public void test3(){
File file = new File("D:\\io");
File file2 = new File("user.txt");
System.out.println(file.isDirectory());
System.out.println(file.isFile());
System.out.println(file.exists());
System.out.println(file.canRead());
System.out.println(file.canWrite());
System.out.println(file.isHidden());
System.out.println("-----------------------------------------");
System.out.println(file2.isDirectory());
System.out.println(file2.isFile());
System.out.println(file2.exists());
System.out.println(file2.canRead());
System.out.println(file2.canWrite());
System.out.println(file2.isHidden());
}
/*
*
public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组
public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组
*/
@Test
public void test2(){
File file = new File("D:\\io");
/*
String[] names = file.list();
for (String name : names) {
System.out.println(name);
}
*/
File[] listFiles = file.listFiles();
for (File file2 : listFiles) {
System.out.println(file2);
}
}
/*
* public String getAbsolutePath():获取绝对路径
public File getAbsoluteFile():获取绝对路径表示的文件
public String getPath() :获取路径
public String getName() :获取名称
public String getParent():获取上层文件目录路径。若无,返回null
*/
@Test
public void test(){
File file = new File("user.txt");
File file2 = new File("D:\\io\\abc.txt");
System.out.println(file.getAbsolutePath());
System.out.println(file.getAbsoluteFile());
System.out.println(file.getPath());
System.out.println(file.getName());
System.out.println(file.getParent());
System.out.println("---------------------------------");
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getAbsoluteFile());
System.out.println(file2.getPath());
System.out.println(file2.getName());
System.out.println(file2.getParent());
}
}