• JAVA中的流-简介(一)


    File/文件

    java.io包中/非流,不创建通道

    格式:

     File file = new File("路径");
    路径
    1. 绝对路径:

      1. 从盘符向下寻找;

      2. 从项目根目录开始寻找

    2. 相对路径:

      1. 从当前编辑文件路径相对于你要找的文件的路径

        ../ 上一级

      2. 试用的场合一般为寻找工程中文件

    常用方法:
     //返回父目录的抽象路径
     .getparentFile();
     //文件是否存在
     .exists();
     //创建一个空的文件.该方法会抛出异常
     .createNewFile();
     //删除
     .delete();
     //获得路径
     .getAbsolutepath();
     //获得文件名
     .getName();
     //得到文件的父级,返回String
     .getParent();
     //判断是否是文件夹
     .isDirectory();
     //获得当前路径下的所有文件名
     .list();

    在实际生活中我们常常需要提取某个文件夹下的某种文件,如果是得到所有文件在判断,这样显得很麻烦,java为我们提供了这样的方法

     .list(FilenmeFilter in);

    这是一个list()方法的重载,传入的FilenmeFilter一个借口,我们可以通过匿名内部类的方式实现该接口,

     .list(new FilenmeFilter(){
         public boolean accept((File file),(String name)){
             if(name.endWith(".clsaa"))
                 return ture;
             return false;
         }
     });

    流的分类

    分类方式类A类B
    传输方向 输入流 输出流
    传输数数据类型 字节流 字符流
    操作方式 节点流 过滤流

    其他:转换流


    字节流-输入流

    作用:读取文件。

    类名:FileInputSteam

    格式:

     FileInputSteam fis = new FileInputSteam("文件路径");
     //1.FileInputSteam("文件路径")会抛出异常
     //2.如果文件是相对路径,在文件夹下则只需要写文件名,在SRC下则需要加上SRC的文件夹。
     //java在编译时会为类名自动添加包名。

    方法:

     int n = fis.read();
     //1.读取一个字节,以整数返回(对于汉字无法读取),存放在n中
     //2.每使用一次,光标向后移动一位
     //3.读取到末尾时返回-1
     int n = fis.((byte[] bytes));
     //1.读取byte长度的字节数,存储在bytes中
     //2.返回的n为bytes数组中读取的有效数据长度
     //3.读取到末尾时返回-1

    字节流-输出流

     FileOutputSteam fos = new FileOutputSteam("文件路径");
     //1.FileOutputSteam("文件路径")会抛出异常
     //2.如果文件是相对路径,在文件夹下则只需要写文件名,在SRC下则需要加上SRC的文件夹。
     //java在编译时会为类名自动添加包名。
     //3.如果路径中的最后文件不存在,会自动添加,(但是中间的路径必须存在,不然会报错)

    方法:

     fos.write();
     //用法类比.read(),包括重载.write((byte[] bytes));

    流的关闭

    1. 写在finally中

    2. 先判断是否为空

    3. 关闭函数.close();

    4. 关闭流时也会抛出异常,切记一个流的关闭,一个try/catch

    5. 因为try/catch语言的独立性,所以流的声明要在try/catch语句外


    字符流

    上层抽象
    1. Reader/自符输入,常用实现类:FileReader

    2. Writer/自符输出,常用实现类:FileWriter

    特点:读取的的是一个字符-两个字节

    用法类似字节流


    过滤流

    缓冲流

    类名:

    1. 字节输入:BufferedInputStream

    2. 字节输出:BufferedOutputStream

    3. 字符输入:BufferedReader

    4. 字符输出:BufferedWriter

    构造器:

     BufferedInputStream(InputStream in);
     //缓冲流传入的是实现InputStream接口的子类
     //在关闭流时,关闭它,其内部流也会关闭

    特性:

    1. 读取数度快

    2. 不关闭缓冲流,会有一部分数据保留在“缓冲管中”,造成数据的缺失

      关闭流时会执行.flush();(冲洗缓冲管方法)

    3. 在字符输入流中有一个特殊方法

       .readLine();
       //1.读取一行字符,不包括换行符(
      )
       //2.读取完成返回null
       //3.对应的.write(.....+"
      "),需要添加"
      "

    打印流

    类名:PrintWriter

    方法:

     .println((String str));//打印并换行

     

  • 相关阅读:
    JavaScript
    css-装饰
    html 标签
    remote connect openshift mysql
    MySQL
    how to run a continuous background task on OpenShift
    openshifit 安装 redis
    Python之路,Day6
    选择排序
    C语言实现链表
  • 原文地址:https://www.cnblogs.com/-Archenemy-/p/12026769.html
Copyright © 2020-2023  润新知