A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangxl 中级黑马   /  2019-5-7 14:45  /  936 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.1File类概述和构造方法
  • File类介绍
    • 它是文件和目录路径名的抽象表示
    • 文件和目录是可以通过File封装成对象的
    • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的

  • 构造方法
    File f = new File(String pathname);
    File f = new File(String parent, String child);
    File f = new File(File parent, String child);   

1.2File类创建功能
    • public boolean creatNewFile();  
    • public boolean mkdir();
    • public boolean mkdirs();


1.3File类判断、获取、删除功能
    • public boolean isDirectory();


  • public boolean isFile();
  • public boolean exists();
    • public String getAbsoluetePath();
    • public String getPath();
    • public String getName();
    • public String[] list();
    • public File[] listFiles();

    • public boolean delete();


递归
  • 介绍
    • 以编程的角度来看,递归指的是方法定义中调用方法本身的现象

  • 递归的注意事项
    • 递归一定要有出口。否则内存溢出
    • 递归虽然有出口,但是递归的次数也不宜过多。否则内存溢出

  • 案例需求
    ​        给定一个路径(E:\itcast),通过递归完成遍历该目录下所有内容,并把所有文件的绝对路径输出在控制台
    public class DiGuiDemo02 {
        public static void main(String[] args) {
            //根据给定的路径创建一个File对象
    //        File srcFile = new File("E:\\itcast");
            File srcFile = new File("E:\\itheima");

            //调用方法
            getAllFilePath(srcFile);
        }

        //定义一个方法,用于获取给定目录下的所有内容,参数为第1步创建的File对象
        public static void getAllFilePath(File srcFile) {
            //获取给定的File目录下所有的文件或者目录的File数组
            File[] fileArray = srcFile.listFiles();
            //遍历该File数组,得到每一个File对象
            if(fileArray != null) {
                for(File file : fileArray) {
                    //判断该File对象是否是目录
                    if(file.isDirectory()) {
                        //是:递归调用
                        getAllFilePath(file);
                    } else {
                        //不是:获取绝对路径输出在控制台
                        System.out.println(file.getAbsolutePath());
                    }
                }
            }
        }
    }
IO流1. FileOutputStream   字节输出流
  • FileOutputStream fos = new FileOutputStream(" 路径名 ");
    • write( int b );
    • write( byte[] b );
    • write( byte[] b, int off, int len );

    • \r\n  换行
    • (" 路径名 ",ture);  追加写入文件末尾

  • 异常处理格式 :try-catch-finally { 执行所有清除操作; }

2. FileInputStream 字节输入流
  • FileInputStream fis = new FileInputStream(" 路径名 ");

    FileInputStream fis = new FileInputStream("路径名");
            int by;
            /*
                fis.read():读数据
                by=fis.read():把读取到的数据赋值给by
                by != -1:判断读取到的数据是否是-1
             */
            while ((by=fis.read())!=-1) {
                System.out.print((char)by);
            }
            //释放资源
            fis.close();
  • 字节流读数据(一次读一个字节数组)

    FileInputStream fis = new FileInputStream("文件路径名");
            byte[] bys = new byte[1024]; //1024及其整数倍
            int len;
            while ((len=fis.read(bys))!=-1) {
                System.out.print(new String(bys,0,len));
            }
            //释放资源
            fis.close();




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马