• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

光的色彩

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

day009-IO流

  什么叫流?就是数据的流动。以内存为基准,分为输入input和输出output。输入也叫做读取数据,输出也叫写出数据。

        

 

  分类

  • 按数据的流向分: 输入流、输出流

  •  按数据类型分:    字节流、字符流

        

1、 字节流FileOutStream、FileInputStream

  1.1  OutputStream 字节输出流

    概述:输出流,是一个抽象类,是所有字节输出流的父类。

    作用:可以将输出从内存中保存到文件中。

 

  OutputStream类常用子类:

  • FileOutStream
  • BufferedOutputStream

  • ObjectOutputStream

  • PrintStream

  OutputStream类常用方法:

  • public void close​()           关闭流

  • public void write​(byte[] b)将指定的字节写入此输出流

  • public void write​(byte[] b, int off, int len)     从位于偏移off的指定字节数组写入len字节到此输出流

  • public void flush​()           刷新流

                                  

  1.2 FileOutputStream 文件字节输出流

    根据文件路径字符串创建字节输出流对象,如果关联的目标不存在,则会自动创建该文件

    1.2.1 FileOutputStream构造方法

      • public FileOutputStream(File file)
      • public FileOutputStream(File file, boolean append)   //append:是否追加;true:追加,false:不追加

 
        1.2.2字节输出流的使用步骤

         (a)创建字节输出流对象关联目标文件

         (b)调用write方法输出数据,以字节为单位输出数据

         (c)关闭流

 

    1.3 InputStream字节输入流

        概述:字节输入流,是一个抽象类,是所有字节输入流的父类

        1.3.1 InputStream类常用子类
      • FileInputStream

      •  BufferedInputStream

      • ObjectInputStream

 
      1.3.2 InputStream类常用方法
  • void close()

  • int read() //读取一个字节,返回实际读取的字节

  • int read(byte[] b)       从目标文件中读取数据到字节数组中,

  • int read(byte[] b, int off, int len)  //b:从目标文件到数组中, off:起始位置, len:读取长度

 
   1.4 FileInputStream 文件字节输入流

    构造方法:

      • public FileInputStream​(String name)

      •  public FileInputStream​(File file)

      根据文件对象或文件路径字符串创建字节输入流对象

      如果文件对象关联的目标文件不存在,则会抛出异常

 

2.     字符流Reader、Writer

  2.1  Reader 字符输入流

    是一个抽象类,是所有字符输入流的父类。

 

  2.1.1 Reader类常用子类

  • FileReader

  • BufferedReader

  • InputStreamReader  

 

  2.1.2 Reader类常用方法

  •  void close()    关闭释放流资源

  •  int read()       读一个字符,返回读取到的字符

  • int read(char[] cbuf)

  • public int read​(char[] cbuf,int off, int len)

 

  2.1.3字符输入流的使用步骤

    (a) 创建字符输入流对象关联对象

    (b) 调用字符输入流对象的read方法从目标文件中读取数据,以字符为单位读取数据

    (c)调用close方法关闭字符输入流

 

  2.2 FileReader 文件字符输入流

    FileReader类是读取字符文件的类。构造时使用系统默认的字符编码。

 

  2.3 Writer类概述

    是一个抽象流,是所有字符输出流的父类

    Writer类常用子类:

      • FileWriter

      •  BufferedWriter

      • OutputStreamWriter

      •  PrintWriter

  2.4 FileWriter 字符文件输出流

    FileReader是读取字符文件的类。构造时使用系统默认的字符编码。

3.     IO流小结:

  3.1 如何判断是字节流还是字符流

    以Stream结尾的是字节流

    以Reader结尾的是字符流

 

  3.2 Close和flush方法的区别

    close方法内部会触发flush方法调用,在关闭流之前会将缓冲区的内容输出到目标文件中。

    flush方法将缓冲区的数据刷新到目标文件中。

 

  3.3 字节流和字符流的选择

    字符流只能操作文本文件,字节流可以操作任意类型的文件。

         如果要操作的文件类型是非文本文件(图片,视频,音频),则只能选择字节流

         如果明确清楚要操作的文件类型是文本文件则推荐使用字符流

 

 4.     Properties类

  Properties属性集,是一个双列集合,实现Map接口,继承Hashtable(过时了)。不需要指定泛型,键和值的类型都是字符串类型

  有与流技术相结合的方法,可以直接将集合中的数据保存到文件中,也可以直接从文件中读取。

 

  4.1常用方法:

    (a)存储键值对,功能和put方法一样

      public Object setProperty(String key, String value)

  (b)根据键,获取对应的值

      public String getProperty(String key)

  (c)根据键获取值,没有返回默认值

          public String getProperty(String key, String defaultValue)

 

    4.2 Properties集合与IO流相关的方法

        (a)将集合中的数据保存到文件中

          public void store(OutputStream out, String comments)
            comments:备注,知识,一些说明性文字,一般给null

        (b)从流关联目标文件中加载数据到集合中

            public void load(InputStream inStream)

  4.3属性文件

    命名要求:xxxx.properties

    存储数据的格式:每一个键值对占一行,格式:键=值

    属性文件中可以使用注释,注释是以#开头

posted on 2018-06-08 10:19  光的色彩  阅读(116)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3