java - I/O

I/O 输入输出 input / output

java.io  

File是内存中的对象,是文件或路径的抽象表示形式  -----》映射了硬盘中的文件或者文件夹

 

package io;

import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;

public class FileTest {
    public static void main(String[] args){
        File f1 = new File("C:\\Users\\Administrator\\Desktop\\test\\fileTest.txt");  //内容: Hello world.
        System.out.println(f1.canRead());  // 是否可读: 个人电脑上我们都是管理员权限,所以一般都可以
        //true
        System.out.println(f1.canWrite());
        //true
        System.out.println(f1.isHidden()); //是否隐藏
        //false
        System.out.println(f1.isFile());   //是否是文件(还可能是文件夹)
        //true
        System.out.println(f1.length());   //文件内容字节长度
        //12
        System.out.println(f1.lastModified());//最后修改时间(1970年至今的毫秒数)
        //1570497049049
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd kk:mm:ss");
        System.out.println(sdf.format(f1.lastModified()));  //规范化后输出
        //2019-10-08 09:10:49
        String f1_s = f1.getParent(); //获取父亲文件的名字
        System.out.println(f1_s);
        //C:\Users\Administrator\Desktop\test
        File f1_f = f1.getParentFile(); //获取父亲文件的对象
        System.out.println(f1_f);
        //C:\Users\Administrator\Desktop\test   虽然和上面返回名字一样,但是这个是调用的File.toString(){ return getPath();}
        System.out.println(f1_f.isDirectory());
        //true
        //返回的是文件夹,和正常文件夹对象一样使用



        //File的属性:path,name
        System.out.println(f1.getPath());
        System.out.println(f1.getName());
        //C:\Users\Administrator\Desktop\test\fileTest.txt     文件的绝对路径
        //fileTest.txt                                         文件名


        File f2 = new File("c:\\users\\administrator\\desktop\\test\\filetest.txt");
        System.out.println(f2.length());
        //12
        // File的路径和名字不区分大小写,不过最好保持一致。
        // 在电脑中文件比较也不区分大小写,比如 filetest.txt 和 FileTest.txt 不能在同一目录下。

        File f3 = new File("C:\\Users\\Administrator\\Desktop\\test\\filetest1.txt");
        System.out.println(f3.isFile());
        //false
        //找不到文件后也会返回一个File对象,但是不可读,不可写,不是File,长度为0



        //文件夹:
        File f4 = new File("C:\\Users\\Administrator\\Desktop\\test");
        System.out.println(f4.isFile());
        //false
        System.out.println(f4.isDirectory());
        //true
        System.out.println(f4.canRead());
        //true
        System.out.println(f4.length());
        //4096
        //路径不是File,可以读写,有长度(和文件夹内部的文件夹内容多少有关)

        String[] f4_s = f4.list(); //返回文件夹内子元素的名字
        for(String s: f4_s){
            System.out.println(s);
        }

        File[] f4_f = f4.listFiles(); //返回文件夹内子元素的对象
        for(File f: f4_f){
            System.out.println(f.getName());
        }

        //太长了就不粘贴结果了- -

        File f5 = new File("C:\\Users\\Administrator\\Desktop\\test\\test.txt");
        try {  //创建文档需要用try包起来
            System.out.println(f5.createNewFile());
            //第一次运行:true
            //第二次运行:false,因为文件已经存在(没有下面那个f5.delete();删除的话),所以没有创建成功
            //如果路径不存在,则会报错
        } catch (IOException e) {
            e.printStackTrace();
        }

        Boolean f5_b = f5.delete();//删除文件
        System.out.println("f5是否被删除:" + f5_b);
        //f5是否被删除:true
        // 如果目标文件不存在或者文件夹下面还有元素没被删除则会返回false,删除失败
        //想要删除文件夹需要用递归。


        File f6 = new File("C:\\Users\\Administrator\\Desktop\\test\\f6Creat");
        System.out.println(f6.mkdir());
        //true  创建文件夹,前面的路径必须存在

        File f7 = new File("C:\\Users\\Administrator\\Desktop\\test\\f7Creat\\test\\aaa");
        System.out.println(f7.mkdirs());
        //true  创建文件夹,前面路径不存在则创建出来
        //如果起个文件名字比如aaa.txt,那么会创建出名字叫aaa.txt的文件夹

    }
}

 

posted @ 2019-10-08 10:39  不咬人的兔子  阅读(142)  评论(0编辑  收藏  举报