zoukankan      html  css  js  c++  java
  • Java IO详解(一)------File 类

    1.File 类的字段

    //是用来分隔同一个路径字符串中的目录的
    System.out.println("目录分隔符:"+File.separator);//输出 
    
    //指的是分隔连续多个路径字符串的分隔符
    System.out.println("多个路径分隔符:"+File.pathSeparator);//输出 ;

    2.File 类的构造方法

    package file;
    
    import java.io.File;
    
    /***
     * @ClassName: IO
     * @Description: TODO
     * @Auther: chujiu
     * @Date: 2020/6/8
     * @version : V1.0
     */
    public class IO {
        public static void main(String[] args) {
    
            //不使用 Java 提供的分隔符字段,注意:这样写只能在 Windows 平台有效
            File f1 = new File("G:\javabased\JavaTest\java.txt");
            //使用 Java 提供的分隔符
            File f2 = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"+File.separator+"java.txt");
            System.out.println(f1);//输出 G:javabasedJavaTestjava.txt
            System.out.println(f2);//输出 G:javabasedJavaTestjava.txt
    
            //File(File parent, String child)
            //从父抽象路径名和子路径名字符串创建新的 File实例。
            File f3 = new File("G:");
            File f4 = new File(f3,"javabased");
            System.out.println(f4); //G:javabased
    
            //File(String pathname)
            //通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
            File f5 = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"+File.separator+"java.txt");
            System.out.println(f5); //G:javabasedJavaTestjava.txt
    
            //File(String parent, String child)
            //从父路径名字符串和子路径名字符串创建新的 File实例。
            File f6 = new File("G:","javabased\JavaTest\java.txt");
            System.out.println(f6); //G:javabasedJavaTestjava.txt
        }
    }

    3.File 类的常用方法

    ①、创建方法

    1.boolean createNewFile()  不存在返回true 存在返回false
    2.boolean mkdir()  创建目录,如果上一级目录不存在,则会创建失败
    3.boolean mkdirs()  创建多级目录,如果上一级目录不存在也会自动创建

    ②、删除方法

    1.boolean delete()  删除文件或目录,如果表示目录,则目录下必须为空才能删除
    2.boolean deleteOnExit()  文件使用完成后删除

    ③、判断方法

    1.boolean canExecute()  判断文件是否可执行
    2.boolean canRead()  判断文件是否可读
    3.boolean canWrite()  判断文件是否可写
    4.boolean exists()  判断文件或目录是否存在
    5.boolean isDirectory()  判断此路径是否为一个目录
    6.boolean isFile()  判断是否为一个文件
    7.boolean isHidden()  判断是否为隐藏文件
    8.boolean isAbsolute()  判断是否是绝对路径 文件不存在也能判断

    ④、获取方法

    1.String getName()  获取此路径表示的文件或目录名称
    2.String getPath()  将此路径名转换为路径名字符串
    3.String getAbsolutePath()  返回此抽象路径名的绝对形式
    4.String getParent()  //如果没有父目录返回null
    5.long lastModified()  //获取最后一次修改的时间
    6.long length()  返回由此抽象路径名表示的文件的长度(以字节为单位)。
    7.boolean renameTo(File f)  重命名由此抽象路径名表示的文件。
    8.File[] liseRoots()  //获取机器盘符(Window中就是所有系统的盘符)
    9.String[] list()  返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
    10.String[] list(FilenameFilter filter)  返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。
    package file;
    
    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /***
     * @ClassName: FileMethod
     * @Description: TODO 文件或者文件夹的方法
     * @Auther: chujiu
     * @Date: 2020/6/8
     * @version : V1.0
     */
    public class FileMethod {
        public static void main(String[] args) throws IOException {
            //创建方法
            File file1 = new File("G:\javabased\JavaTest\aa");
            System.out.println("创建成功了吗?" + file1.createNewFile());
            System.out.println("单级文件夹创建成功了吗?" + file1.mkdir());
            System.out.println("多级文件夹创建成功了吗?" + file1.mkdirs());
            File dest = new File("G:\javabased\JavaTest\a1.txt");
            System.out.println("重命名成功了吗?" + file1.renameTo(dest));
    
            //删除方法
            File file2 = new File("G:\javabased\JavaTest\a1.txt");
            System.out.println("删除成功了吗?" + file2.delete());
            file2.deleteOnExit();
    
            //判断方法
            File file3 = new File("G:\javabased\JavaTest\a1.txt");
            System.out.println("文件或者文件夹存在吗?" + file3.exists());
            System.out.println("是一个文件吗?" + file3.isFile());
            System.out.println("是一个文件夹吗?" + file3.isDirectory());
            System.out.println("是隐藏文件吗?" + file3.isHidden());
            System.out.println("此路径是绝对路径名?" + file3.isAbsolute());
    
            //获取方法
            File file4 = new File("G:\javabased\JavaTest\a1.txt");
            System.out.println("文件或者文件夹得名称是:" + file4.getName());
            System.out.println("绝对路径是:" + file4.getPath());
            System.out.println("绝对路径是:" + file4.getAbsolutePath());
            System.out.println("文件大小是(以字节为单位):" + file4.length());
            System.out.println("父路径是" + file4.getParent());
            
            //使用日期类与日期格式化类进行获取规定的时间
            long lastmodified = file4.lastModified();
            Date data = new Date(lastmodified);
            SimpleDateFormat simpledataformat = new SimpleDateFormat("YY年MM月DD日 HH:mm:ss");
            System.out.println("最后一次修改的时间是:" + simpledataformat.format(data));
    
            //文件或者文件夹的方法
            File[] file = File.listRoots();
            System.out.println("所有的盘符是:");
            for (File item : file) {
                System.out.println("	" + item);
            }
    
            File filename = new File("G:" + File.separator + "javabased"+ File.separator + "JavaTest" );
    
            String[] name = filename.list();
            System.out.println("指定文件夹下的文件或者文件夹有:");
            for (String item : name) {
                System.out.println("	" + item);
            }
    
            File[] f = filename.listFiles();
            System.out.println("获得该路径下的文件或文件夹是:");
            for (File item : f) {
                System.out.println("	" + item.getName());
            }
    
        }
    }

    4.File 的一些技巧

    ①、在 G:javabasedJavaTest 目录下创建 a.txt

    package file;
    
    import java.io.File;
    import java.io.IOException;
    
    /***
     * @ClassName: IO
     * @Description: TODO 在 G:javabasedJavaTest 目录下创建 a.txt
     * @Auther: chujiu
     * @Date: 2020/6/8
     * @version : V1.0
     */
    public class IO {
        public static void main(String[] args) throws IOException {
    
            //File(File parent, String child)
            //从父抽象路径名和子路径名字符串创建新的 File实例。
            File dir = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest");
            File file = new File(dir,"a.txt");
    
            //判断dir 是否存在且表示一个目录
            if(!(dir.exists()||dir.isDirectory())){
                //如果 dir 不存在,则创建这个目录
                dir.mkdirs();
            }
    
            //根据目录和文件名,创建 a.txt文件
            file.createNewFile();
    
            //返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。
            System.out.println(file.getName()); //a.txt
            //返回此抽象路径名的父null的路径名字符串,如果此路径名未命名为父目录,则返回null。
            System.out.println(file.getParent());//G:javabasedJavaTest
            //将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character以名称顺序分隔名称。
            System.out.println(file.getPath()); //G:javabasedJavaTesta.txt
        }
    }

    ②、打印给定目录下的所有文件夹和文件夹里面的内容 

    package file;
    
    import java.io.File;
    import java.io.IOException;
    
    /***
     * @ClassName: IO
     * @Description: TODO 打印给定目录下的所有文件夹和文件夹里面的内容 
     * @Auther: chujiu
     * @Date: 2020/6/8
     * @version : V1.0
     */
    public class IO {
        public static void getFileList(File file){
            //第一级子目录
            File[] files = file.listFiles();
    for(File f:files){ //打印目录和文件 System.out.println(f); if(f.isDirectory()){ getFileList(f); } } } public static void main(String[] args) throws IOException { File f = new File("G:"+File.separator+"javabased"+File.separator+"JavaTest"); getFileList(f); } }

    参考文章:https://www.cnblogs.com/ysocean/tag/Java%20IO%E8%AF%A6%E8%A7%A3%E7%B3%BB%E5%88%97/

    一辈子很短,努力的做好两件事就好;第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱。
  • 相关阅读:
    Docker理解
    提高服务器并发量,有关系统配置的常规方法
    Linux EXT 文件系统 详解
    jvm入门
    2020-1-08.运维面试题总结
    hexo+gitee
    rsync
    haddop3.2.1完全分布式安装
    zabbix02
    zabbix监控工具问题集
  • 原文地址:https://www.cnblogs.com/antao/p/13063384.html
Copyright © 2011-2022 走看看