• 【幻化万千戏红尘】qianfengDay19-java基础学习:转换流、对象流、打印流、三大标准(重定向)


    课程回顾:

    流:数据通信的管道
    常用的流类:
    1、文件流:File:数据在文件中
     1、FileInputStream
     2、FileOutputStream
     3、FileReader
     4、FileWriter
    2、内存流:ByteArray:数据在内存中(数组)
     1、ByteArrayInputStream
     2、ByteArrayOutputStream
    3、缓冲流:Buffered:提高读写效率
     1、BufferedInputStream
     2、BufferedOutputStream
     3、BufferedReader
     readLine
     4、BufferedWriter
     newLine


    今日内容:
    常用的流类:
    1、文件流:File:数据在文件中
     1、FileInputStream
     2、FileOutputStream
     3、FileReader
     4、FileWriter
    2、内存流:ByteArray:数据在内存中(数组)
     1、ByteArrayInputStream
     2、ByteArrayOutputStream
    3、缓冲流:Buffered:提高读写效率
     1、BufferedInputStream
     2、BufferedOutputStream
     3、BufferedReader
     readLine
     4、BufferedWriter
     newLine
    4、转换流:用于字节流和字符流之间的转换,可以指定编码格式,处理流,字符流
    1、OutputStreamWriter:转换输出字符流
    输出字符流----》输出字节流
    常用方法:
     write:写出,字符
     flush:刷新
     
    2、InputStreamReader:转换输入字符流
    输入字节流-----》输入字符流
    常用方法:
     read
     skip
    5、对象流(Object):可以将各种数据类型的数据写出(序列化)或读取(反序列化)
    字节流,处理流
    序列化:将对应的类的相关信息和对象的相关内容进行编码的过程,(暂态、静态的不会参与序列化)
    反序列化:将序列化的内容进行解析

    1、ObjectOutputStream:对象输出字节流
    将数据进行序列化保存
    常用方法:
    writeXXX:写出不同的数据类型的数据
    writeObject:写出对象
    wirteUTF:写出字符串

    2、ObjectInputStream:对象输入字节流
    将数据进行反序列化读取
    常用方法:
    readXXX:读取指定类型的数据
    readObject:读取一个对象
    readUTF:读取字符串

    对象流在使用的时候必须谨记以下两点:
    1、对象流只能成对出现(使用对象输出流那么也必须使用对象输入流读取数据)
    2、读写顺序必须一致(怎么写的就怎么读取)
    writeInt----->readInt

    对象流读取到文件末尾引发EOFException异常
    当读取的字节数超过文件剩余的字节数时,都会引发EOFException异常

    属性不参与序列化的方式:
    1、静态的:static
    静态的属性不参与序列化
    2、暂态的:transient
    修饰的属性不参与序列化

    当将自定义类进行序列化保存的时候,对应的类必须实现Serializable(序列化接口)

    6、打印流(Print):打印各种数据类型的数据,处理流
    只有输出,没有输入
    1、PrintStream:打印字节流
     常用方法:
     print:输出各种类型数据
     println:输出各种类型数据,并且写出换行符
     write:写出,字节
    2、PrintWriter:打印字符流
     常用方法:
     print:输出各种类型数据
     println:输出各种类型数据,并且写出换行符
     write:写出,字符
     
    三大标准(重定向):
    1、标准输入流(InputSTream)
    System.in:默认数据来自键盘输入
    如果数据来自键盘的话,就读取不到文件的末尾,因为会阻塞的最后一次的read方法
    System.setIn:重新设置标准输入的数据来源
    2、标准输出流(PrintStream)
    System.out:默认将数据输出到控制台
    System.setOut:重新设置标准输出的位置
    3、标准错误流(PrintStream)
    System.err:默认将数据输出到控制台(字体红色)
    System.setErr:重新设置标准错误流的位置

    7、数据流:
    1、DataInputStream
    2、DataOutputStream

    8、随机读取文件类:

  • 相关阅读:
    Codeforces Round #260 (Div. 2)
    面试题:给定数组a,找到最大的j-i, 使a[j]>a[i]
    ssh自动输入密码脚本 切换目录脚本
    make工作时的执行步骤
    Codeforces Round #259 (Div. 2)
    Codeforces Round #258 (Div. 2)
    如何在半径为1的圆中随机选取一个点
    面试中常问的有关随机选取k个数的总结
    topcoder SRM 628 DIV2 BracketExpressions
    topcoder SRM 628 DIV2 BishopMove
  • 原文地址:https://www.cnblogs.com/weigongcheng/p/5742620.html
Copyright © 2020-2023  润新知