• 113.Java操作数据的流对象


    操作数组的流对象

    操作字节数组

    ByteArrayInputStream

       以及ByteArrayOutputStream

    toByteArray();

    toString();

    writeTo(OutputStream);

    public static void testByteArrayInputStream() throws Exception {
            InputStream in = new ByteArrayInputStream(new byte[] { 65, 66, 67 });
            ByteArrayOutputStream out = new ByteArrayOutputStream();
    
            for (int b = -1; (b = in.read()) != -1;) {
                out.write(b);
            }
    
            in.close();
            out.close();
    
            System.out.println(Arrays.toString(out.toByteArray()));
            System.out.println(out);
        }

     操作字符数组

    CharArrayReader

    CharArrayWriter

    对于这些流,源是内存。目的也是内存。

    而且这些流并未调用系统资源。使用的就是内存中的数组。

    所以这些在使用的时候不需要close。

    操作数组的读取流在构造时,必须要明确一个数据源。所以要传入相对应的数组。

    对于操作数组的写入流,在构造函数可以使用空参数。因为它内置了一个可变长度数组作为缓冲区。

    public static void testCharArrayReader() throws Exception {
            CharArrayReader reader = new CharArrayReader(new char[] { 'A', 'b', 'c' });
            CharArrayWriter writer = new CharArrayWriter();
    
            for (int b = -1; (b = reader.read()) != -1;) {
                writer.write(b);
            }
    
            reader.close();
            writer.close();
    
            System.out.println(writer.toCharArray());
        }

    这几个流的出现其实就是通过流的读写思想在操作数组。

    类似的对象同理:

    StringReader

    StringWriter。

    public static void testStringReader() throws Exception {
            StringReader reader = new StringReader("test 中国");
            StringWriter writer = new StringWriter();
    
            for (int b = -1; (b = reader.read()) != -1;) {
                writer.write(b);
            }
    
            reader.close();
            writer.close();
    
            System.out.println(writer.toString());
        }
    author@nohert
  • 相关阅读:
    分布式计算原理
    消息的有序性
    CAP再解释
    数据建模
    领导层级的跨越
    如何上云|什么是多机房多活架构
    mysql导出导入数据
    Qt 串口 封装好的类 直接使用
    C++ 在类的定义时初始化非静态变量
    Qt error C3646: 未知重写说明符
  • 原文地址:https://www.cnblogs.com/gzgBlog/p/13670060.html
Copyright © 2020-2023  润新知