• java InputSreamReader类、OutputStreamWriter类


    1、InputSreamReader类

    类型概述

    InputStreamReader类是从字节流到字符流的桥接器,它使用指定的字符集读取字节并将它们解码为字符。每次调用一个InputStreamReader的read()方法都可能导致从底层字节输入流中读取一个或多个字节。

    为了实现字节到字符的有效转换,可以从基础流中提取比满足当前读取操作所需的更多字节。为了获得最高效率,请考虑在BufferedReader中包装InputStreamReader。

    构造方法

    InputStreamReader(InputStream in)
    
    • 1

    使用默认的字符集构造InputStreamReader流。

    InputStreamReader(InputStream in, Charset cs)
    
    • 1

    使用给定的字符集构造InputStreamReader流。

    InputStreamReader(InputStream in, CharsetDecoder dec)
    
    • 1

    使用给定的字符解码器构造InputStreamReader流。

    InputStreamReader(InputStream in, String charsetName)
    
    • 1

    使用给定名字的字符集构造InputStreamReader流。

    对象方法

    1、close函数

    void close()
    
    • 1

    关闭InputStreamReader流。

    2、getEncoding函数

    String getEncoding()
    
    • 1

    获取字符的编码方式。

    3、read函数

    int read()
    
    • 1

    读取单个字符。

    int read(char[] cbuf, int offset, int length)
    
    • 1

    读取指定长度的字符到字符数组中。

    使用示例

    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintStream;
    
    public class Test2 {
        public static void main(String[] args) throws IOException {
        	// 创建一个InputStreamReader
            InputStreamReader inputStreamReader =  new InputStreamReader(System.in);
            // 读取一个字符
            char c = (char)inputStreamReader.read();
            // 创建一个打印流
            PrintStream printStream = new PrintStream(System.out);
            // 输出到控制台
            printStream.println(c);
            inputStreamReader.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2、OutputStreamWriter类

    类型概述

    OutputStreamWriter是从字符流到字节流的桥接:使用指定的字符集将写入其中的字符编码为字节。它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。

    OutputStreamWriter中存在一个字节缓冲区,用于存储每次输出的字符编码后的字节,然后待字符输出流输出完毕一次性的将存储的字节全部输出给底层的字节输出流。

    为了获得最高效率,请考虑在BufferedWriter中包装OutputStreamWriter,以避免频繁的转换器调用。

    构造方法

    OutputStreamWriter(OutputStream out)
    
    • 1

    使用默认的字符集构造OutputStreamWriter流。

    OutputStreamWriter(OutputStream out, Charset cs)
    
    • 1

    使用指定的字符集构造OutputStreamWriter流。

    OutputStreamWriter(OutputStream out, CharsetEncoder enc)
    
    • 1

    使用指定的字符集编码器构造OutputStreamWriter流。

    OutputStreamWriter(OutputStream out, String charsetName)
    
    • 1

    使用指定名称的字符集构造OutputStreamWriter流。

    对象方法

    1、close函数

    void close()
    
    • 1

    关闭OutputStreamWriter流。在关闭OutputStreamWriter流之前需要清空流中的内容。

    2、flush函数

    void flush()
    
    • 1

    清空OutputStreamWriter流。

    3、getEncoding函数

    String getEncoding()
    
    • 1

    获取字符的编码方式。

    4、write函数

    void write(char[] cbuf, int off, int len)
    
    • 1

    向流中写入字符数组的全部或者一部分内容。

    void write(int c)
    
    • 1

    向流中写入一个字符。

    void write(String str, int off, int len)
    
    • 1

    向流中写入一个字符串。

    使用示例

    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    
    public class Test {
        public static void main(String[] args) throws IOException {
            InputStreamReader inputStreamReader =  new InputStreamReader(System.in);
            char c = (char)inputStreamReader.read();
    		// 创建一个OutputStreamWriter流
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(System.out);
            // 写入一个字节
            outputStreamWriter.write(c);
    		// 关闭流
            outputStreamWriter.close();
            inputStreamReader.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    输入:

    abcde
    
    • 1

    输出:

    a
    
    • 1
  • 相关阅读:
    IQ Products CMV Brite Turbo试剂盒的原理
    【FPGA零基础学习之旅#14】串口发送字符串
    c++学习从小白到高级工程师实战02:opencv的活学活用
    曲线艺术编程 coding curves 第七章 抛物线(Parabolas)
    Buuctf web [GXYCTF2019]Ping Ping Ping
    欧拉角(Euler Angle)
    生成式人工智能促使社会转变
    Oracle中ALTER TABLE的五种用法(四、五)
    基于 ABAP Fundamental Library 应用支持的几种 Connectivity 方式
    web开发概述
  • 原文地址:https://blog.csdn.net/weixin_49346755/article/details/125886125