zoukankan      html  css  js  c++  java
  • IO流

    1. 文件与IO

    1) 文件 File

      ① 文件路径的两种表示方式

       

           ② File可以表示一个文件,也可以表示一个文件夹

           ③ File对象的方法

    ④ File构造方法

            没有提供无参的构造方法

    2) I/O流概念

    I/O:输入输出,input   outputI/O相对于JVM而言

    分类:流:文件的数据流

    传输方向:输入流、输出流

    传输单位:字节流、字符流

                功能:节点流、过滤流

                       节点流:真正传输数据的流

                       过滤流:包装节点流,让节点流具有更强的功能

    3) I/O字节流

    字节流传输的是字节

    ① InputStream(抽象类)      字节输入流

       子类:FileInputStream     文件的输入流

    方法:read();  read(byte[] b);   read(byte[]b, int off, int len);

    ② 流的关闭异常

       is.close

     

    ③ OutputStrem(抽象类)

      子类:FileOutputStream

    业务需求:把文件d:\a.txt赋值一份到e:\b.txt

           ④ 数据过滤流:DataInputStream/DataOutputStream

              能够把一个数字进行存取,文件类型为:*.dat

              注意:存放数据的顺序、类型要和取数据一致

           ⑤ 缓冲过滤流:BufferedInputStream/BufferedOutputStream

              了解缓存是如何实现的(缓存大小是8192)

              有缓存输出时需要手动调用flush()方法才能把缓存中的内容刷入到文件中

           ⑥ 对象过滤流:ObjectInputStream/ObjectOutputStream

              对象序列化(钝化):把对象转换成字符序列的过程

              对象反序列化(活化):把字符序列还原成对象的过程

              

              如果当前对象的属性又是一个对象,则对象也需要被序列化方可存储

              关键字:transient(被此关键字修饰的属性不会被序列化)

    字节流输入流:① 创建文件对象

                  ② 创建字节流输入流对象

                  ③ 将文件的数据读入到字节数组中

                  ④ 输出数据内容,将字节数组转换为字符串,使用String类的构造方法

    字节流输出流:① 创建文件对象

                  ② 创建字节流输出流对象

                  ③ 将字符串转为字节数组

                  ④ 将数据写入到文件

                  ⑤ 关闭输出流,释放资源

    4)  I/O字符流

          ① 编码

             编码:把字符转换成数字的过程

             解码:把数字转换成字符的过程

             编码格式(UTF-8):

                 iso-8859-1:西方国家文字

                 GBK:简体中文

                 GB2312:简体中文

    ② 字符流

             能够读写汉字

             Writer/Reader

             FileWriter/FileReader

             方法和使用参照字节流

          ③ 桥接流

             能够把字节流转换字符流,可设置转换的编码格式

             InputStreamReader / OutputStreamWriter

          ④ 缓冲过滤流

             BufferedReader / BufferedWriter:提供缓存功能,可以读一行和重新写一行 

             ***BufferedWriter不能接受outputstream类型的对象,只能通过printwriter方法进行。

    PrintWriter:可以一行一行的写入

    字符流输入流:① 创建字符流输入流对象

                  ② 创建一个BufferedReader缓冲区

                  ③ 整行整行的读取

    字符流输出流:① 创建一个字符流输出流对象

                  ② 创建一个BufferedWrite缓冲区

                  ③ 将要写入的内容通过write()方法写入到缓冲区

                  ④ 刷新缓冲区

      二进制读写流:

       字节流转换为字符流:InputStreamReader

       字符流转换为字节流:

  • 相关阅读:
    论文引用标记设置
    悬浮图层特效
    SocketInputStream.socketRead0引起线程池提交任务后,futureTask.get超时
    线程池中的线程何时死亡?
    AppClassLoader
    《Java高并发编程详解-多线程架构与设计》Java Classloader
    Tomcat的类加载器初步认识
    《Java高并发编程详解-多线程架构与设计》Thread API
    《Java高并发编程详解-多线程架构与设计》JVM类加载器
    SpringMVC中的RootWebApplicationContext与ServletWebApplicationContext
  • 原文地址:https://www.cnblogs.com/dulute/p/11233693.html
Copyright © 2011-2022 走看看