zoukankan      html  css  js  c++  java
  • 基础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位的字符

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    意法半导体STM32MP157A MPU加持,米尔科技首款ST Linux开发板MYD-YA157C评测
    基于nxp i.mx8m mini的新一代高性价比核心板之王
    Spring IoC容器-ApplicationContext
    XML文档
    Spring资源访问
    Spring框架简介
    SpringBoot整合RabbitMQ
    发布订阅模式
    主题模式
    RabbitMQ Work Queues(工作队列)
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14402416.html
Copyright © 2011-2022 走看看