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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

知识点总结
  • File类的概述和构造方法
    • 概念:文件和目录的抽象表示
    • 构造方法
      • new File("完整路径");
        File f1 = new File("D:\\这个是练习\\1.txt");
        System.out.println(f1.createNewFile());
      • new File("目录",“文件”);
        File f2 = new File("D:\\这个是练习", "2.txt");
        System.out.println(f2.createNewFile());
      • File file1=new File("目录") File file2=new File(file1,"文件");
        File f3 = new File("D:\\这个是练习");
        File f4 = new File(f3, "3.txt");
        System.out.println(f4.createNewFile());

  • File类创建类方法
    • 创建文件:createNewFile();
    • 目录:mkdir() ;
      File f0 = new File("D:\\这个是练习");
      System.out.println(f0.mkdir());
    • 多级目录:mkdirs()
      File f5 = new File("D:\\这个是练习\\这个也是练习");
      System.out.println(f5.mkdirs());
  • File类的判断和获取方法
    • 判断是否是目录:isDirectory()
      System.out.println(f0.isDirectory());
    • 判断是否是文件:isFile()
      System.out.println(f0.isFile());
    • 判断文件或目录是否存在:exists()
      System.out.println(f0.exists());
    • 名字:getName()
      System.out.println(f0.getName());
    • 路径:getPath()
      System.out.println(f6.getPath());
    • 全路径:getAbsolutePath()
      System.out.println(f6.getAbsolutePath());
    • 获取目录下文件名:list()
      String[] list = f0.list();
      for (String s : list) {
          System.out.println(s);
      }
    • 获取目录下文件:listFiles()
      File[] files = f0.listFiles();
      for (File file : files) {
          System.out.println(file);
      }
  • File类删除
    •         删除文件:delete()删除目录时,目录必须为空

  • 不死神兔例子
    public static int Rabbit(int n) {
            int[] arr = new int[n];
            if (n == 1 || n == 2) {
                return 1;
            } else {
                arr[0] = 1;
                arr[1] = 1;
                arr[n - 1] = Rabbit(n-1) + Rabbit(n-2);
            }
            return arr[n - 1];
        }
    }
  • 阶乘
    public static int chengFa(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * chengFa(n - 1);
        }
    }流概述
    • 概念:数据传输的总成
    • 分类:   输入流   输出流
    • 工作方式:字节流 字符流

  • 字节流写数据
    • 字节输出流:OutPutStream() FileOutPutStream("文件的路径")
      FileOutputStream fo = new FileOutputStream("C:\\Users\\Admin\\Desktop\\Tale.mp4");
    • 字节形式写数据:write() write(byte[]) write(byte[],off,len)
      FileOutputStream fo = new FileOutputStream("day17\\Tale.txt");
      FileInputStream fi = new FileInputStream("day17\\Tale.txt");
      fo.write((84 + "").getBytes());
      fo.write(11);
      fo.write(11085);
      /*fo.write(84);
      fo.write(97);
      fo.write("l".getBytes());
      byte[] b = {97, 98, 99, 100, 101};
      fo.write(b, 4, 1);*/
      byte[] by = new byte[1];
      System.out.println((char) (fi.read()));//8
      System.out.println(fi.read());//52
      System.out.println(fi.read());//11
      System.out.println(fi.read());//M
    • 释放资源:close()
      fo.close();
      fi.close();
  • 字节流写数据的两个小问题
    • 换行:/r/n
      for (int i = 0; i < 10; i++) {
                  fos.write("hello".getBytes());
                  fos.write("\r\n".getBytes());
             }
    • 如何进行追加写:new FileOutPutStream("文件的路径",true)
      FileOutputStream fo = new FileOutputStream("C:\\Users\\Admin\\Desktop\\Tale.mp4",true);
    • finally try catch后必须要执行的代码块,做关闭资源的操作
        
      try {
           fos = new FileOutputStream("myByteStream\\fos.txt");
           fos.write("hello".getBytes());
            } catch (IOException e) {
                  e.printStackTrace();
            } finally {
                 if(fos != null) {
                  try {
                      fos.close();
                      } catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
             }

  • 字节流读取数据
    • 字节输入流对象:InputStream() FileInputStream("")
      FileInputStream fi = new FileInputStream("F:\\英雄时刻\\Desktop\\Desktop 2019.03.27 - 14.21.19.02.DVR.mp4");
    • 读数据的方法:read()     当-1时代表文件到结尾   read(byte[])返回值实际读取数据的长度,-1代表数据读取完成
      int i;
      while ((i = fi.read(b)) != -1) {
          fo.write(b, 0, i);
      }
    • 释放资源:close()
      fi.close();


0 个回复

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