温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java IO流常用操作之字节流和字符流的示例分析

发布时间:2021-11-03 10:55:00 来源:亿速云 阅读:207 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关java IO流常用操作之字节流和字符流的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一.主要IO流的分类

java IO流常用操作之字节流和字符流的示例分析

通过图可知java 中主要IO流根据处理数据类型的不同分为字符流和字节流,根据数据流向不同分为输入流和输出流。

二. 使用场景

1.考虑最原始的数据格式是什么:
场景一. 原始数据是二进制或者是纯文本,使用方式如下:
(1). 二进制格式(只要不能确定是纯文本的):InputStream,OutputStream及其子类(字节流)。

(2). 纯文本格式(含纯英文与汉字或其他编码方式):Reader,Writer及其子类(字符流)。

场景二:IO数据流通道:

(1). 输入:Reader,InputStream类型的子类。

(2). 输出:Writer,OutputStream类型的子类。

场景三:IO流转换:

(1). 字节到字符:InputStreamReader

(2). 字符到字节:OutputStreamWriter

场景四:数据来源流向:

(1). 文件:FileInputStream,FileOutputStream ; FileReader,FileWriter

(2). byte[]: ByteArrayInputStream, ByteArrayOutputStream

(3).Char[]:CharArrayReader,CharArrayWriter

(4).String:StringBufferInputStream,StringBufferOutputStream;StringReader,StringWriter

(5).网络数据流:InputStream,OutputStream;Reader,Writer

场景五:缓冲:(要注意readLine()是否有定义,有什么比read(),writer()更特殊的输入或输出方法)

要缓冲:BufferedInputStream, BufferedOutputStream; BufferedReader, BufferedWriter

场景六:格式化输出:

格式化输出:PrintStream, PrintWriter

三.主要字节流常用方法
(1).InputStream字节流

    // 从输入流中读取数据的下一个字节
    abstract int read()
    // 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b中
    int read(byte[] b)
    // 将输入流中最多 len 个数据字节读入 byte 数组
    int read(byte[] b, int off, int len)


    // 跳过和丢弃此输入流中数据的 n个字节
    long skip(long n)

    // 关闭此输入流并释放与该流关联的所有系统资源
    void close()

(2).OutputStream字节流

    
    // 将 b.length 个字节从指定的 byte 数组写入此输出流
    void write(byte[] b)
    // 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流
    void write(byte[] b, int off, int len)
    // 将指定的字节写入此输出流
    abstract void write(int b)

    // 关闭此输出流并释放与此流有关的所有系统资源
    void close()

    // 刷新此输出流并强制写出所有缓冲的输出字节
    void flush()

四.主要字符流常用方法
(1). Reader

    
    // 读取单个字符
    int read()
    // 将字符读入数组
    int read(char[] cbuf)
    // 将字符读入数组的某一部分
    abstract int read(char[] cbuf, int off, int len)
    // 跳过字符
    long skip(long n)

    // 关闭该流并释放与之关联的所有资源
    abstract void close()

(2). Writer

      // 写入字符数组
     void write(char[] cbuf)
    // 写入字符数组的某一部分
    abstract void write(char[] cbuf, int off, int len)
    // 写入单个字符
    void write(int c)
    // 写入字符串
    void write(String str)
    // 写入字符串的某一部分
    void write(String str, int off, int len)

    // 将指定字符添加到此 writer
    Writer append(char c)
    // 将指定字符序列添加到此 writer
    Writer append(CharSequence csq)
    // 将指定字符序列的子序列添加到此 writer.Appendable
    Writer append(CharSequence csq, int start, int end)

    // 关闭此流,但要先刷新它
    abstract void close()
    // 刷新该流的缓冲
    abstract void flush()

关于“java IO流常用操作之字节流和字符流的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI