zoukankan      html  css  js  c++  java
  • Java—IO流

    一、IO流的操作规律

    IO流进行了规律的总结(四个明确):

    • 明确一:要操作的数据是数据源还是数据目的。

      源:InputStream Reader

      目的:OutputStream Writer

      先根据需求明确要读,还是要写。
    • 明确二:要操作的数据是字节还是文本呢?

      源:

       字节:InputStream

       文本:Reader

      目的:

       字节:OutputStream

       文本:Writer

      已经明确到了具体的体系上。
    • 明确三:明确数据所在的具体设备。

      源设备:

       硬盘:文件 File开头。

       内存:数组,字符串。

       键盘:System.in;

       网络:Socket

      目的设备:

       硬盘:文件 File开头。

       内存:数组,字符串。

       屏幕:System.out

       网络:Socket

      完全可以明确具体要使用哪个流对象。
    • 明确四:是否需要额外功能呢?

      额外功能:

       转换吗?转换流。InputStreamReader OutputStreamWriter

       高效吗?缓冲区对象。BufferedXXX

    二、IO流中的类

    字节输入流 InputStream

     |- FileInputStream 操作文件的字节输入流

     |- BufferedInputStream 高效的字节输入流

    字节输出流 OuputStream

     |- FileOutputStream 操作文件的字节输出流

     |- BufferedOuputStream 高效的字节输出流

    字符输出流 Writer

     |- OutputStreamWriter 输出操作的转换流(把字节流封装成字符流)

      |- FileWriter 操作文件的字符输出流

     |- BufferedWriter 高效的字符输出流

    字符输出流 Reader

     |- InputStreamReader 输入操作的转换流(把字节流封装成字符流)

      |-FileReader 操作文件的字符输入流

     |- BufferedReader 高效的字符输入流

    读数据方法:

     read() 一次读一个字节或字符的方法

     read(byte[] char[]) 一次读一个数组数据的方法

     readLine() 一次读一行字符串的方法(BufferedReader类特有方法)

     readObject() 从流中读取对象(ObjectInputStream特有方法)

    写数据方法:

     write(int) 一次写一个字节或字符到文件中

     write(byte[] char[]) 一次写一个数组数据到文件中

     write(String) 一次写一个字符串内容到文件中

     writeObject(Object ) 写对象到流中(ObjectOutputStream类特有方法)

     newLine() 写一个换行符号(BufferedWriter类特有方法)

    向文件中写入数据的过程

     1.创建输出流对象

     2.写数据到文件

     3.关闭输出流

    从文件中读数据的过程

     1.创建输入流对象

     2.从文件中读数据

     3.关闭输入流

    文件复制的过程

     1.创建输入流(数据源)

     2.创建输出流(目的地)

     3.从输入流中读数据

     4.通过输出流,把数据写入目的地

     5.关闭流

  • 相关阅读:
    Java零基础系列教程015Java异常
    Java零基础系列教程013Java多态
    Java零基础系列教程12Java继承
    Java零基础系列教程11Java类和对象练习之扑克模拟
    Java零基础系列教程10Java抽象与封装
    【原创】Linux虚拟化KVM-Qemu分析(四)之CPU虚拟化(2)
    【原创】Linux虚拟化KVM-Qemu分析(三)之KVM源码(1)
    【原创】Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化
    如何取书名(2)
    《金融业人工智能实践 》(Hands-On Artificial Intelligence for Banking) 阅读指南
  • 原文地址:https://www.cnblogs.com/nadou/p/13974098.html
Copyright © 2011-2022 走看看