• 基础IO类和相关方法


    IO类最基本的有四个抽象类,InputStreamOutputStreamReaderWriter。最基本的方法是read()和write()方法,其他都是这四类流的子类,方法也是通过这两类方法衍生而成。大部分的IO源码都是native标注,源码都是C/C++写的。

    1、InputStream

    InputStream是定义了一个Java流式字节输入模式的抽象类。该类的所有方法在出错条件下引发IOException异常,它的主要方法如下:

    方法

    方法介绍

    public int available()

    返回可读的字节数量

    public int read(byte b[],int off,int len)

    把从第off位置读取len长度字节的数据放到byte数组中

    public abstract  int read()

    读取数据

    public long skip(long n)

    跳过指定个数的字节

    public void close()

    关闭流,释放资源

    public synchronized void reset()

    重置读取位置为上次mark标记的位置

    public boolean markSupported()

    如果调用的流支付mark()/reset()就返回true

    2、OutputStream

    OutputStream定义了一个Java流式字节输出模式的抽象类,该类的所有方法返回一个void值并且在出错的情况下引发一个IOException异常。主要方法如下:

    方法

    方法介绍

    void write(int b)

    void write(byte buffer[])

    void write(byte buffer[],int offset,int numBytes)

    写入数组bufferbuffer[offset]

    void flush()

    刷新缓冲区

    void close()

    关闭输出流,关闭后的写操作会产生IOException异常

    3、Reader

    Reader类是Java定义的流式字符输入模式的抽象类。类中的方法在出错时引发IOException异常

    方法

    描述

    int read()

    如果调用的输入流的下一个字符可读则返回一个整型,遇到文件尾时返回-1

    int read(char buffer[])

    从缓冲区中读取字符,返回实际成功读取的字符数,遇到文件尾返回-1

    abstract  int read(char buffer[],int offset,int numChars)

    试图读取buffer中从buffer[offset]开始的numChars个字符,返回实际成功读取的字符数,遇到文件尾返回-1

    Boolean ready()

    如果下一个输入请求不等待则返回true,否则返回false

    Long skip(long numChars)

    跳过numChars个输入字符,返回跳过的字符数

    Boolean markSupported()

    判断当前流是否支持标记流

    void reset()

    重置读取位置为上次mark标记的位置

    void mark(int numChars)

    在输入流的当前位置设立一个标志。该输入流在numChars个字符被读取之前有效

    abstract  void close()

    关闭输入源,进一步的读取将会产生IOException异常

    4、Writer

    Writer是定义流式字符输出的抽象类,所有该类的方法都返回一个void值并在出错条件下引发IOException异常。

    方法

    描述

    void write(char buffer[])

    向一个输出流写一个完整的字符数组

    abstract  void write(char buffer[],int offset,int numChars)

    向调用的输出流写入数组buffer[offset]为起点的numChars个字符区域的内容

    abstract  void close()

    关闭输出流,关闭后进行写操作会产生IOException异常

    abstract  void flush()

    刷新缓冲区

    Writer append(CharSequence csq)

    追加一个字符序列

    Writer append(CharSequence csq,int start,int end)

    追加写入一个字符序列的一部分,从start位置开始,end位置结束

    Writer append(char c)

    追加写入一个16位的字符

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    注册“Oracle Provider for OLE DB”和创建链接服务器
    前端编辑神器Brackets
    vue+webpack项目实战
    MPreview.js
    webpack+gulp实现自动构建部署
    rem布局下使用背景图片和sprite图
    webpack配合vue.js实现完整的单页面demo
    淘宝弹性布局方案lib-flexible研究
    前端工程化
    mock server相关解决方案
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14402416.html
Copyright © 2020-2023  润新知