File类构造器参数是文件路径,只是对文件或者文件夹增删改,需要操作文件内容的话,就需要后面的IO流类了
File类只是作为输入输出的端点。
File类在Java.Io包下
File类的一个对象,对应操作系统的一个文件或者文件目录,idea中使用单元测试方法是在model中,如果是main方法则是在project中
File类中声明了新建、删除、获取名称、重命名等方法,并没有涉及到文件内容的读写操作。要想实现文件内容的读写,我们就需要使用io流。
File类对象,通常是作为io流操作的端点。 就是输入的起点和输出的终点
代码层面,将file文件作为参数传送到IO流的构造器中
绝对路径:包括盘符在内的完整路径
相对路径:相对于运行程序的目录的路径
•public File(String pathname) :以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
•public File(String parent, String child) :以parent为父路径,child为子路径创建File对象。
•public File(File parent, String child) :根据一个父File对象和子文件路径创建File对象
举例
public class FileTest {
@Test
public void Test01(){
// •public File(String pathname) :以pathname为路径创建File对象,
// 可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
File file = new File("D:\\io\\hello.txt");
File abc = new File("abc");
System.out.println(abc.getAbsolutePath());
}
@Test
public void Test02(){
// •public File(String parent, String child) :以parent为父路径,child为子路径创建File对象。
File file = new File("D:\\io","abc.txt");
File file2 = new File("abc","123.txt");
System.out.println(file.getAbsolutePath());
System.out.println(file2.getAbsolutePath());
// •public File(File parent, String child) :根据一个父File对象和子文件路径创建File对象
File file3 = new File(file2, "321.txt");
System.out.println(file3.getAbsolutePath());
}
}
1、获取文件和目录基本信息
•public String getName() :获取名称
•public String getPath() :获取路径
•public String getAbsolutePath():获取绝对路径
•public File getAbsoluteFile():获取绝对路径表示的文件
•public String getParent():获取上层文件目录路径。若无,返回null
•public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
•public long lastModified() :获取最后一次的修改时间,毫秒值
如果File对象代表的文件或目录存在,则File对象实例初始化时,就会用硬盘中对应文件或目录的属性信息(例如,时间、类型等)为File对象的属性赋值,否则除了路径和名称,File对象的其他属性将会保留默认值。
@Test
public void test03(){
File file = new File("123.txt");
System.out.println(file.getName());
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getAbsoluteFile());
System.out.println(file.getParent());
System.out.println(file.length());
System.out.println(file.lastModified());
}
2、列出目录的下一级
•public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
•public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
@Test
public void test04(){
File file = new File("D:\\io");
String[] list = file.list();
for (String s:list){
System.out.println(s);
}
File[] files = file.listFiles();
for(File file1:files){
System.out.println(file1.getName());
}
}
3、File类的重命名功能
•public boolean renameTo(File dest):把文件重命名为指定的文件路径。
原file必须存在,新file必须不存在,且新file的文件目录必须存在
@Test
public void test05(){
File file = new File("D:\\io\\hello.txt");
File file1 = new File("D:\\io\\bcd.txt");
//file必须存在,file1必须不存在,且file1的文件目录必须存在
boolean b = file.renameTo(file1);
System.out.println(b);
}
4、判断功能的方法
•public boolean exists() :此File表示的文件或目录是否实际存在。
•public boolean isDirectory() :此File表示的是否为目录。
•public boolean isFile() :此File表示的是否为文件。
•public boolean canRead() :判断是否可读
•public boolean canWrite() :判断是否可写
•public boolean isHidden() :判断是否隐藏
@Test
public void test06(){
File file = new File("D:\\io\\123.txt");
System.out.println(file.exists());
System.out.println(file.isDirectory());
System.out.println(file.isFile());
System.out.println(file.canRead());
System.out.println(file.canWrite());
System.out.println(file.isHidden());
}
5、创建、删除功能
•public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false。
•public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
•public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建。
•public boolean delete() :删除文件或者文件夹 删除
注意事项:① Java中的删除不走回收站。② 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录。
@Test
public void test07() throws IOException {
File file = new File("D:\\io\\456.txt");
if(!file.exists()){
file.createNewFile();
System.out.println("创建成功");
}else {
System.out.println("此文件已经存在");
if(file.delete()){
System.out.println("文件删除成功");
}else {
System.out.println("文件删除失败");
}
}
}
@Test
public void test08() throws IOException {
//前提D:\io存在,D:\io\io2或3不存在
File file = new File("D:\\io\\io2");
System.out.println(file.mkdir()?"创建成功":"创建失败");
File file2 = new File("D:\\io\\io3");
System.out.println(file2.mkdirs()?"创建成功":"创建失败");
}
@Test
public void test09() throws IOException {
//前提D:\io存在,D:\io\io2或3不存在,mkdirs可以创建多级目录
File file = new File("D:\\io\\io2\\io4");
System.out.println(file.mkdir()?"创建成功":"创建失败");
File file2 = new File("D:\\io\\io3\\io5");
System.out.println(file2.mkdirs()?"创建成功":"创建失败");
}
推荐阅读: