天天看点

java-File(文件)

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * java.io.File
 * File的每一个实例用于表示文件系统中的一个文件或目录
 * 使用File可以:
 * 1.访问文件或目录的属性信息(名字,大小,修改时间)
 * 2.操作文件或者目录(创建,删除)
 * 3.访问目录子项
 * 
 * File类只能用于表示文件(目录)的信息(名称,大小等),不能对文件的内容进行访问
 *
 */
public class FileDemo {
    public static void main(String[] args) throws IOException {
        /**
         * File(String pathname)通过将给定路径名字字符串转换成抽象路径名来创建一个新File实例
         * 抽象路径尽量使用相对路径,并且目录的层级分隔符不要直接写" /"或" \",应使用File.separator这个常量表示,以避免不同系统带来的差异
         * 
         * 相对路径常用:
         * 1.类加载路径(常用)
         * 2.当前目录,在eclipse中当前目录就是指当前类所在的项目目录
         */
        File file=new File("."+File.separator+"demo.txt");//.代表的是本项目的根目录
        String name=file.getName();
        System.out.println(name);
        /**long length()-返回值:当前File对象所表示的文件所占用的字节量**/
        long length=file.length();//大小,字节量
        System.out.println("字节量:"+length);

        boolean cr=file.canRead();//可读
        System.out.println("可读:"+cr);

        boolean cw=file.canWrite();//可写
        System.out.println("可写:"+cw);

        boolean in=file.isHidden();//隐藏
        System.out.println("是否隐藏:"+in);

        long time=file.lastModified();//最后修改时间
        Date date=new Date();
        date.setTime(time);
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
        String date1=sdf.format(date);//日期转换成字符串
        System.out.println("最后修改时间:"+date1);
//      System.out.println("最后修改时间:"+sdf.format(time));

        /**
         * 创建文件
         * boolean createNewFile():如果指定的文件不存在并成功创建,返回true,如果已经存在,返回false
         * 当前目录下创建名为:test.txt的文件
         * ./ 不写,默认也是在当前目录下
         */
        File file1=new File("test.txt");
        /**boolean exists()  判断当前File表示的文件或目录是否存在,存在返回:true,否则返回false**/
        if(!file1.exists()) {
            file1.createNewFile();
            System.out.println("文件创建完毕");
        }else {
            System.out.println("该文件已经存在");
        }

        /**
         * 删除当前目录中的文件
         * boolean delete()
         * 返回值:当且仅当成功删除文件或目录时,返回true;否则返回false
         * 注意:若此File对象所表示的是一个目录时,在删除时需要保证此为空目录才可以成功删除(目录中不能含有任何子项)
         */
        if(file1.exists()) {
            file1.delete();
            System.out.println("删除完毕");
        }
    }
}