zoukankan      html  css  js  c++  java
  • Io流大总结

                  字节流结构

     输入流:

    ObjectInputStream:从文件中读取对象

    FileInputStream:从文件中输入(读)字节

    BufferedInputStream:底层有缓冲数组,在不定义数组的情况下,提高输入(读)效率

     

    输出流:

    ObjectOutStream:

    经一个对象写入文件

    FileOutputStream:

    将数据输出(写)文件

    BufferedOutputStream:

    底层有缓冲数组,再不定义数组情况下,提高输出(写)效率

                 字符流结构图

    输入流:

    FileReader:

    输入(读)文本文件的数据

    BuffereReader:

    底层有缓冲数组,在不定义数组情况下,提高输入(读)效率,同时有特有readLine()方法,一次可以读取一整行数据

    InputStreamReader:

    是从字节流到字符流的桥梁:它读取字节,并使用指定的charset将其解码为字符.它使用的字符集可以有名

    称指定,也可以被明确指定,或者使用平台的默认字符集

     

    输出流:

    FileWriter:

    将数据输出(写)到文本文件

    BufferedWriter:

    底层有缓冲数组,再不定义数组的情况下,提高写入效率.同时有特有newLine()方法输出跨平台换行

    OutputStreaWriter:

    是从字符流到字节流的桥梁:使用指定的charset将其解码为字节,它使用的字符集可以是由名称指定,

    也可以被明确指定,或者可以接受平台默认的字符集

                  字节流常用方法

    FileInputStream,BufferedInputStream:

    • int read():读取一个字节

    • int read(byte[]b):读取一个字节数组

    • void close:释放文件(关流)

    FileOutputStream、BufferedOutputStream:

    • void write(int b):写入一个字节

    • void write(byte[]b):写入一个字节数组

    • void write(byte[]b,int off(开始位置),int len(个数)):写入一个字节数组,从off开始,写入len个

    • void close:释放文件(关流)

    ObjectInputStream:

    • Object readObject():读取一个对象

    • void close:释放文件(关流)

    ObjectOutputStream:

    • void writeObject(Object obj):写入一个对象

    • void close:释放文件(关流)

                   字符流常用方法

    FileReader、BufferedReader、InputStreamReader:

    • int read():一次读取一个字符

    • int read(char[]char):一次读取一个字符数组

    BufferedReader特有方法:

    • String readLine():读取一整行

    FileWriter、BufferedWriter、OutputStreamWriter:

    • void write():写入一个字符

    • void write(char[]char):写入一个字符数组

    • void write(char[]char,int off(开始位置),int len(个数)):写入一个数组的一部分,开始位置off,写入个数len

    • void write(String str):写一个字符串

    • void write(String str,off(开始位置),len(个数)):写一个字符串一部分,开始位置off,写入个数len

    • void flush():刷新流

    • void close():释放文件

    BufferedWriter特有方法:

    • void newLine:跨平台通用换行

    Properties集合与Io流集合的方法:

    • void load(Reaner reader):将字符输入流中的数据加载到Properties对象中

    • void store(Writer writer,String comments):将Properties集合中的数据存入字符输出流

                  注意事项

    • flush():

      刷新流,之后还可以继续写数据

    • close():

      关闭流,释放资源,但是关闭之前会先写出数据.一旦关闭,就不能再写数据了

    • 关流操作应定要放在try-catch-finally中的finally中:

      • 被finally控制的语句一定会被执行,不管有没有异常,也不管异常有没有被捕获

      • 即使finally中包含continue,break,return,try块结束后,finally块也依旧会执行

    • 使用字节输出流注意事项:

      • 如果文件不存在就创建

      • 写整数时,实际写出的是整数对应码表的字母

      • 使用完必须释放资源

      • 表示文件的路径名称必须存在

    • 使用字符输出(写出)流注意事项:

      • 创建字符输出流对象时如果文件不存在就创建,存在就清空

      • 写数据时:

        • 写int就是写的ASCLL码表中对应的字节

        • 写字符串就是将字符串原样输出

      • 必须释放资源

    • 使用字符流(输入)读取数据注意事项:

      • 文件必须要存在

      • 必须释放资源

    • 对象操作流注意事项:

      • 如果想要这个类能被序列化,那么这个类必须实现一个接口Serializable

      • Serializable是一个标记接口,实现给接口不需要重写任何方法

      • 静态成员不加transient关键字都会被序列化

      • serialVersionUID 指定序列号,可以避免javabean修改,造成序列号改变运行时候出错

    • 数据读取末尾的输出标记:

      • 字符,字节读取到文件结尾会返回-1

      • 读取一整行到文件末尾会返回null

      • 读取对象到末尾会报EOFException

    • File[]listFiles()注意点:

      • File指向不存在的,返回null

      • 存在的是文件:返回null

      • 存在的是文件夹正常输出,如果是空文件夹,返回长度为0的File数组

      • 权限问题没有访问权限,返回null

      注意:返回为null的情况,可以有效避免遍历返回数组时候出现运行时异常 

     

  • 相关阅读:
    2014025640《嵌入式程序设计》第二周学习总结
    基于Struts2的SpringMVC入门
    2014025640《嵌入式设计》第一周学习总结
    Hadoop综合大作业
    hive基本操作与应用
    用mapreduce 处理气象数据集
    熟悉常用的HBase操作,编写MapReduce作业
    爬虫大作业
    熟悉常用的HDFS操作
    中文词频统计
  • 原文地址:https://www.cnblogs.com/859630097com/p/14220414.html
Copyright © 2011-2022 走看看