0%

Java12.19

输入输出流

RandomAccessFile(file,mode)
mode:”r”,”rw”
EOFException:读到文件末尾

InputStream、OutputStream

过滤流

FilterInputStream(InputStream in)
FilterOutputStream(OutputStream out)
在原有输入输出流的基础上提供新的功能

  • BufferedInputStream(有缓冲区,不必每次访问外设)
  • DataInputStream:基本数据类型的读写,readInt/Float/Boolean
  • PipedInputStream(PipedOutputStream src)
    构造:PipedInputStream(PipedOutputStream src)
    connect(PipedOutputStream src)

    字符流

    reader
    read()
    readLine()
    markSupported()
    生成流对象 public BufferedReader(Reader in)
    PrintWriter(new FileWriter(“test.txt”),true)
    InputStreamReader 字节流和字符流的中介
    public InputStreamReader(InputStream in,String enc(编码格式))
    public String getEncoding()
    System.in:以字节为单位的输入流

    System类

    重定向:System.setIn(InputStream)
    流结束的判断
    read()返回-1
    readXXX()返回EOF
    readLine()返回null
    I/O异常

    Object Serialization

    InputStream子类:ObjectInputStream对象输入流
    对象的序列化
  • 支持远程方法调用(RMI)
  • 支持本地存储(JavaBean)
  1. 实现接口Serialization(可串行化)才可以被序列化,作为标志。
  2. 调用readObject(),writeObject()

从对象输入流读对象时需要.class文件(当前目录下) ClassNotFoundException

Serialization控制方法:
  1. 关键字transient(该数据不会被写入,文件中为null)
  2. 实现Externalization接口,writeExternal()方法,readExternal()需要不带参数的public构造方法