本文风格:代码结合注释
主要内容如下:
1.File类的简单说明
2.如何创建File类的实例
3.File类的常用方法
package com.wang.basic;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.util.Date;
/**
* @description File类的使用
*
* 0x01.File类简介:
* 1.File类的是一个对象,代表一个文件或一个文件目录
* 2.File类声明在java.io包下
* 3.File类涉及到关于文件或文件目录的创建,删除,移动,修改时间,文件大小等方法,
* 并未涉及到文件内容的操作,如果需要读写文件内容,必须使用IO流来完成
* 4.File类的对象常会作为参数传递到流的构造器中,指明读写的“终点”.
*
*
* 0x02.如何创建File类的实例:见test01
*
* 0x03.File类的常用方法
* File类的获取功能:见test02
* 适用于文件目录两个方法:见test03
* File类的文件移动(重命名)功能:见test04
* File类的判断功能:测试见test05
* File类的创建功能:见test06,test07
*
* @author baola
* @create 2020-06-07 16:41
*
*/
public class FileTest {
/**
* File3个构造器测试
* 通过这三个构造器得到的对象,在内存中存放,没有在磁盘上生成。
* 1.File(String filePath):以pathname为路径创建File对象,可以是 绝对路径或者相对路径,如果
* pathname是相对路径,则默认的当前路径在系统属性user.dir中存储
* 2.File(String parentPath,String childPath):以parent为父路径,child为子路径创建File对象
* 3.public File(File parent,String child):根据一个父File对象和子文件路径创建File对象
*
*/
@Test
public void test01(){
//构造器1
File file1 = new File("1.txt");
File file2 = new File("D:\\JavaCode\\JavaAdvanced\\IOLearing\\src\\com\\wang\\basic\\2.txt");
System.out.println("file1 : " + file1);
System.out.println("file2 : " + file2);
//构造器2
File file3 = new File("wang","basic");
System.out.println("file3 : " + file3);
//构造器3
File file4 = new File(file3,"3.txt");
System.out.println( "file4 : "+ file4);
}
/**
* 测试File类的常用方法
* public String getAbsolutePath():获取绝对路径
* public String getPath():获取路径
* public String getName():获取文件名字
* public String getParent():获取上一层文件目录路径,若无,返回null
* public String length() : 获取文件大小, 不能获取目录的长度。
* public String lastModified():获取文件最后一次修改的时间,返回毫秒值
*/
@Test
public void test02(){
File file1 = new File("1.txt");
File file2 = new File("C:\\Users\\Doby\\Desktop\\2.txt");
System.out.println(file1.getAbsoluteFile());
System.out.println(file1.getPath());
System.out.println(file1.getName());
System.out.println(file1.getParent());
System.out.println(file1.length());
System.out.println(new Date(file1.lastModified()));
System.out.println("***********************");
System.out.println(file2.getAbsoluteFile());
System.out.println(file2.getPath());
System.out.println(file2.getName());
System.out.println(file2.getParent());
System.out.println(file2.length());
System.out.println(file2.lastModified());
}
/**
* public String[] list():获取指定目录下的说有文件或者文件目录的名称数组,如果目录不存在,报错:NullPointerException
* public File[] listFiles() : 获取指定目录下的所有文件或者文件目录的File数组
*/
@Test
public void test03(){
File file = new File("D:\\JavaCode\\JavaAdvanced\\IOLearing");
String[] list= file.list();
for(String s : list){
System.out.println(s);
}
File[] files = file.listFiles();
for(File f : files){
System.out.println(f);
}
}
/**
* public boolean renameTo(File dest):把文件重命名为指定的文件路径
* 例如:file1.renameTo(file2),
* 要想保证文件移动成功,需要file1实际存在,且file2不能在硬盘中存在。
*/
@Test
public void test04(){
File file1 = new File("1.txt");
File file2 = new File("2.txt");
boolean re = file1.renameTo(file2);
}
/**
* File类的判断功能
* public boolean isDirectory():判断是否是文件目录
* public boolean isFile(): 判断是都是文件
* public boolean exists():判断是否存在
* public boolean canRead(): 判断是否可读
* public boolean canWrite(): 判断是否可写
* public boolean isHidden():判断是都隐藏
*
*/
@Test
public void test05(){
File file1 = new File("1.txt");
File file2 = new File("c:");
// System.out.println(file1.isDirectory());
// System.out.println(file1.isFile());
// System.out.println(file1.exists());
// System.out.println(file1.canRead());
// System.out.println(file1.canWrite());
// System.out.println(file1.isHidden());
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 boolean createNewFile():创建文件,若文件存在,则不创建,返回false
* public boolean mkdir():创建文件目录,如果文件目录存在,就不创建,如果此文件目录的上层不存在,
* public boolean mkdirs():创建文件目录,如果上层文件目录不存在,一并创建
* 删除磁盘中的文件或文件目录
* public boolean delete():删除文件。
* 删除注意事项:Java中的删除经过回收站
* 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录
*/
@Test
public void test06() throws IOException {
File file1 = new File("2.txt");
if(!file1.exists()){
file1.createNewFile();
System.out.println("创建成功");
}else{
file1.delete();
System.out.println("删除成功");
}
}
@Test
public void test07() throws IOException {
File file1 = new File("F:\\Files\\JavaNote\\wang");
File file2 = new File("F:\\Files\\JavaNote\\ran\\laopo");
boolean mkdir = file1.mkdir();
if(mkdir){
System.out.println("mkdir----文件夹创建成功");
}else{
file1.delete();
System.out.println("delete----文件夹删除成功");
}
boolean mkdirs = file2.mkdirs();
if(mkdirs){
System.out.println("mkdirs----文件夹创建成功");
}else{
file2.delete();
System.out.println("delete----文件夹删除成功");
}
}
}