zoukankan      html  css  js  c++  java
  • IO流技术

    路径拼接:

    package com.sxt.io;
    
    import java.io.File;
    
    /**
     * 
     * @author 裴新
     *
     */
    public class PathDemo01 {
        /**
         *    /  名称分隔符  separator
         * @param args
         */
        public static void main(String[] args) {
            String path ="D:\java300\IO_study01\IO.png";
            System.out.println(File.separatorChar);        
            //建议
            //1、/
            path = "D:/java300/IO_study01/IO.png";
            System.out.println(path);
            //2、常量拼接
            path ="D:"+File.separator+"java300"+File.separator+"IO_study01"+File.separator+"IO.png";
            System.out.println(path);
        }
    
    }
    View Code

    构建File对象:

    public class FileDemo01 {
        /**
         * 构建File对象
         * @param args
         */
        public static void main(String[] args) {
            String path ="D:/java300/IO_study01/IO.png";
            
            //1、构建File对象
            File src = new File(path);
            System.out.println(src.length());
            
            //2、构建File对象
            src = new File("D:/java300/IO_study01","IO.png");
            src = new File("D:/java300/","IO_study01/IO.png");
            System.out.println(src.length());
            
            //3、构建File对象
            src = new File(new File("D:/java300/IO_study01"),"IO.png");
            System.out.println(src.length());
        }
    
    }
    View Code

    构建File对象:相对路径与绝对路径

    public class FileDemo02 {
        /**
         * 构建File对象
         * 相对路径与绝对路径
         * 1)、存在盘符: 绝对路径
         * 2)、不存在盘符:相对路径  ,当前目录 user.dir
         * @param args
         */
        public static void main(String[] args) {
            String path ="D:/java300/IO_study01/IO.png";
            
            //绝对路径
            File src = new File(path);
            System.out.println(src.getAbsolutePath());
            
            //相对路径
            System.out.println(System.getProperty("user.dir"));
            src = new File("IO.png");
            System.out.println(src.getAbsolutePath());
            
            
            //构建一个不存在的文件
            src = new File("aaa/IO2.png");
            System.out.println(src.getAbsolutePath());
        }
    
    }
    View Code

    获取File对象名称,路径,绝对路径,父对象,父路径

    /**
     * 名称或路径
     * getName()   : 名称
     * getPath()    : 相对、绝对
        getAbsolutePath() :绝对
        getParent(): 上路径 返回null
    
     * @author 裴新
     *
     */
    public class FileDemo03 {
    
        public static void main(String[] args) {
            File src = new File("IO_study01/IO.png");
            
            //基本信息
            System.out.println("名称:"+src.getName());
            System.out.println("路径:"+src.getPath());
            System.out.println("绝对路径:"+src.getAbsolutePath());
            System.out.println("父路径:"+src.getParent());
            System.out.println("父对象:"+src.getParentFile().getName());
        }
    
    }
    View Code

    判断文件是否存在,是文件还是文件夹

    package com.sxt.io;
    
    import java.io.File;
    
    /**
     * 文件状态
     * 1、不存在: exists
     * 2、存在
     *      文件: isFile
     *      文件夹: isDirectory
    
     * @author 裴新
     *
     */
    public class FileDemo04 {
    
        public static void main(String[] args) {
            File src = new File("IO_study01/IO.png");
            System.out.println(src.getAbsolutePath());
            System.out.println("是否存在:"+src.exists());
            System.out.println("是否文件:"+src.isFile());
            System.out.println("是否文件夹:"+src.isDirectory());
            
            src = new File("IO.png");
            System.out.println("----------");
            System.out.println("是否存在:"+src.exists());
            System.out.println("是否文件:"+src.isFile());
            System.out.println("是否文件夹:"+src.isDirectory());
            
            src = new File("D:\java300\IO_study01");
            System.out.println("----------");
            System.out.println("是否存在:"+src.exists());
            System.out.println("是否文件:"+src.isFile());
            System.out.println("是否文件夹:"+src.isDirectory());
            
            //文件状态
            src = new File("xxx");
            if(null == src || !src.exists()) {
                System.out.println("文件不存在");
            }else {
                if(src.isFile()) {
                    System.out.println("文件操作");
                }else {
                    System.out.println("文件夹操作");
                }
            }
    
            
        }
    
    }
    View Code

    获取File对象文件的长度

    package com.sxt.io;
    
    import java.io.File;
    
    /**
     * 其他信息
     * length() : 文件的字节数 
    *
     * 
     * @author 裴新
     *
     */
    public class FileDemo05 {
        public static void main(String[] args) {
            File src = new File("D:/java300/IO_study01/IO.png");
            System.out.println("长度:"+ src.length());
            
            src = new File("D:/java300/IO_study01");
            System.out.println("长度:"+ src.length());
            
            src = new File("D:/java300/IO_study02");
            System.out.println("长度:"+ src.length());
            
            
        }
    }
    View Code

    创建文件和删除文件: createNewFile(), delete()

    package com.sxt.io;
    
    import java.io.File;
    import java.io.IOException;
    
    /**
     * 其他信息:
     * createNewFile()  : 不存在才创建,存在创建成功
     * delete():删除已经存在的文件
    *
     * 
     * @author 裴新
     *
     */
    public class FileDemo06 {
        public static void main(String[] args) throws IOException {
            File src = new File("D:/java300/IO_study01/io.txt");
            boolean flag =src.createNewFile();
            System.out.println(flag);
            flag = src.delete();
            System.out.println(flag);
            
            System.out.println("----------");
            //不是文件夹
            flag =src.createNewFile();
            System.out.println(flag);
            
            flag = src.delete();
            System.out.println(flag);
            
            
            //补充:  con com3... 操作系统的设备名,不能正确创建
            src = new File("D:/java300/IO_study01/con");
            src.createNewFile();
        }
    }
    View Code

    创建文件夹:mkdir()和mkdirs()

    package com.sxt.io;
    
    import java.io.File;
    
    /**
     * 创建目录
     * 1、mkdir() : 确保上级目录存在,不存在创建失败
     * 2、mkdirs(): 上级目录可以不存在,不存在一同来创建
     * @author 裴新
     *
     */
    public class DirDemo01 {
        public static void main(String[] args) {
            File dir = new File("D:/java300/IO_study01/dir/test");
            //创建目录 mkdirs()
            boolean flag = dir.mkdirs();
            System.out.println(flag);
            //创建目录 mkdir()
            dir = new File("D:/java300/IO_study01/dir/test2");
            flag = dir.mkdirs();
            System.out.println(flag);
        }
    }
    View Code

    列出下一级: 列出下级名称和下级File对象

    package com.sxt.io;
    
    import java.io.File;
    
    /**
     * 列出下一级
     * 1、list() :列出下级名称
     * 2、listFiles():列出下级File对象
     * 
     * 列出所有的盘符: listRoots()
     * @author 裴新
     *
     */
    public class DirDemo02 {
        public static void main(String[] args) {
            File dir = new File("D:/java300/IO_study01");
            
            //下级名称  list
            String[] subNames = dir.list();
            for(String s:subNames) {
                System.out.println(s);
            }
            
            //下级对象  listFiles()
            File[] subFiles = dir.listFiles();
            for(File s:subFiles) {
                System.out.println(s.getAbsolutePath());
            }
            
            //所有盘符
            File[] roots = dir.listRoots();
            for(File r:roots) {
                System.out.println(r.getAbsolutePath());
            }
        }
    }
    View Code

    递归打印子孙级目录和文件的名称

    package com.sxt.io;
    
    import java.io.File;
    
    /**
     *  递归: 方法自己调用自己 
     *  打印子孙级目录和文件的名称
     * @author 裴新
     *
     */
    public class DirDemo04 {
        public static void main(String[] args) {
            File src =  new File("D:\java300\IO_study01");
            printName(src,0);
        }
        //打印打印子孙级目录和文件的名称
        public static void printName(File src,int deep) {
            //控制前面层次
            for(int i=0;i<deep;i++) {
                System.out.print("-");
            }
            //打印名称
            System.out.println(src.getName());    
            if(null ==src || !src.exists()) {  //递归头
                return ;
            }else if(src.isDirectory()) { //目录
                for(File s:src.listFiles()) {
                    printName(s,deep+1); //递归体
                }
            }
        }
    }
    View Code

    递归统计文件夹的大小

    package com.sxt.io;
    
    import java.io.File;
    
    /**
     *  统计文件夹的大小
     * @author 裴新
     *
     */
    public class DirDemo05 {
        public static void main(String[] args) {
            File src =  new File("D:\java300\IO_study01");
            count(src);
            System.out.println(len);
        }
        private static long len =0;
        public static void count(File src) {    
            //获取大小
            if(null!=src && src.exists()) {
                if(src.isFile()) {  //大小
                    len+=src.length();
                }else { //子孙级
                    for(File s:src.listFiles()) {
                            count(s);
                    }
                }
            }
        }
    }
    View Code

     递归使用面向对象: 统计文件夹的大小

    package com.sxt.io;
    
    import java.io.File;
    
    /**
     *  使用面向对象: 统计文件夹的大小
     * @author 裴新
     *
     */
    public class DirCount {
        //大小
        private long len;
        //文件夹路径
        private String path;
        //文件的个数
        private int fileSize;
        //文件夹的个数
        private int dirSize;
        //
        private File src;
        
        public DirCount(String path) {
            this.path = path;
            this.src = new File(path);
            count(this.src);
        }    
        
        //统计大小
        private  void count(File src) {    
            //获取大小
            if(null!=src && src.exists()) {
                if(src.isFile()) {  //大小
                    len+=src.length();
                    this.fileSize++;
                }else { //子孙级
                    this.dirSize++;
                    for(File s:src.listFiles()) {
                            count(s);
                    }
                }
            }
        }    
        
        public long getLen() {
            return len;
        }
    
        public int getFileSize() {
            return fileSize;
        }
    
        public int getDirSize() {
            return dirSize;
        }
        
        public static void main(String[] args) {
            DirCount dir = new DirCount("D:\java300\IO_study01");        
            System.out.println(dir.getLen()+"-->"+dir.getFileSize()+"-->"+dir.getDirSize());
            
            DirCount dir2 = new DirCount("D:/java300/IO_study01/src");        
            System.out.println(dir2.getLen()+"-->"+dir2.getFileSize()+"-->"+dir2.getDirSize());
    
        }    
    
    
        
        
        
    }
    View Code
  • 相关阅读:
    编译安装glibc
    Android SDK下载
    Ubuntu下Android编译环境的配置
    ubuntu常用命令
    硬盘概念解析
    ubuntu官方源列表网址
    Win7系统下利用U盘安装Ubuntu14.04麒麟版
    jdk5下载链接
    vim跳到文件头和文末结尾
    vim 全局替换命令
  • 原文地址:https://www.cnblogs.com/jiefangzhe/p/11298562.html
Copyright © 2011-2022 走看看