import org.junit.Test;
import java.io.*;
import java.util.Date;
/**File类的使用
* 1.File类的一个对象代表一个文件或文件夹
* 2.File类声明在java.io包下
* 3.File类中涉及关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,
* 并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。
* 4.后续File类的对象常被作为参数传递给流构造器中,指明读取或写入的“终点”
* 一、新建
* @author orz
*/
public class FileClass {
/**
* 一、
* 1.如何创建File类的实例
*File(String filePath);
*File(String parentPath,String childPath);
*File(File parentFile,childPath);
* 2.
* 相对路径:相对某个路径下,指明的路径
* 绝对路径:包含盘符在内的文件或者文件目录的路径
*
* 3.路径分隔符
* windows:\\
* unix:/
* 推荐使用File.separator
*
* 二、常用方法
* 1.
*public String getAbsolutePath()//获取绝对路径
*public String getPath() //获取路径
*public String getName()//获取名称
*public String getParent()//获取上层文件目录路径,若无,返回null
*public long length()//获取文件长度(字节数),不能获取目录长度
*public long lastModified()//获取最后一次的修改时间,毫秒值
*
*2.
* 如下两个方法适用于文件目录
* public String[] list()//获取指定目录下的所有文件或者文件目录的名称数组
* public File[] listFiles()//获取指定目录下的所有文件或者文件目录的File数组
*
*3.
* public boolean renameTo(File dest) //将文件重命名为指定文件路径
* 比如:file1.renameTo(file2)为例
* 要想保证放回true,需要file1在硬盘真实存在,且file2不能在硬盘中存在。
*
* 4.
* * public boolean isDirectory()//判断是否是文件目录
* * public boolean isFile()//判断是否是文件
* * public boolean exists()//判断是否存在
* * public boolean canRead()//判断是否可读
* * public boolean canWrite()//判断是否可写
* * public boolean isHidden()//判断是否隐藏
*
*
* 三、创建硬盘中对应文件或文件目录
*
*/
@Test
public void test1()
{
//构造器1
//相对路径,相对于当前module
File file1=new File("hello.txt");
//绝对路径
//"d:"+ File.separator+"orz"+File.separator+"info.txt"="d:\\orz\\info.txt";
File file2=new File("d:"+ File.separator+"orz"+File.separator+"info.txt");
System.out.println(file1);
System.out.println(file2);
//构造器2
File file3=new File("D:"+File.separator+"orz","jiangxiaoyu");
System.out.println(file3);
//构造器3
File file4=new File(file3,"test.txt");
System.out.println(file4);
}
@Test
public void test2()
{
File file1=new File("hello.txt");
File file2=new File("d:"+ File.separator+"orz"+File.separator+"info.txt");
System.out.println(file1.getAbsolutePath());
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.getAbsolutePath());
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());
}
@Test
public void test3()
{
//文件需要真实存在,否则报错
File file3=new File("E:"+File.separator+"code"+File.separator+"java");
String [] list=file3.list();
for(String s:list)
{
System.out.println(s);
}
System.out.println();
File [] files=file3.listFiles();
for (File f:files)
{
System.out.println(f);
}
}
/**
* public boolean renameTo(File dest) //将文件重命名为指定文件路径
* 比如:file1.renameTo(file2)为例
* 要想保证放回true,需要file1在硬盘真实存在,且file2不能在硬盘中存在。
*/
@Test
public void test4()
{
File file1=new File("hello.txt");
File file2=new File("E:\\code\\java\\JAVADay1\\hi.txt");
boolean renameTo=file2.renameTo(file1);
System.out.println(renameTo);
}
/**
* public boolean isDirectory()//判断是否是文件目录
* public boolean isFile()//判断是否是文件
* public boolean exists()//判断是否存在
* public boolean canRead()//判断是否可读
* public boolean canWrite()//判断是否可写
* public boolean isHidden()//判断是否隐藏
*/
@Test
public void test5()
{
File file1=new File("hello.txt");
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());
}
/**
* 创建硬盘中对应的文件或文件目录
* public boolean createNewFile() //创建文件,如文件存在则不创建并返回false
*
* 删除磁盘中的文件或文件目录
* public boolean delete()//删除文件或文件夹
* 注意事项:java中删除文件不走回收站
*/
@Test
public void test6 () throws IOException
{
//文件创建
File file1=new File("hi.txt");
if(!file1.exists())
{
boolean create=file1.createNewFile();
if(create)
{
System.out.println("创建成功");
}
}
else
{
boolean delete=file1.delete();
if(delete)
{
System.out.println("删除成功");
}
}
}
/**
*public boolean mkdir() //创建文件目录,如果文件目录存在,就不创建。如果此文件目录的上层目录不存在也不创建
*public boolean mkdirs() //创建文件目录,如果上层文件目录不存在,一并创建
*
*/
@Test
public void test7 () throws IOException {
//文件目录创建
File file1 = new File("E:\\code\\java\\test\\01");
boolean mkdir = file1.mkdir();
if (mkdir) {
System.out.println("文件夹1创建成功");
}
File file2 = new File("E:\\code\\java\\test2\\02");
boolean mkdir2 = file2.mkdirs();
if (mkdir2) {
System.out.println("文件夹2创建成功");
}
}
}