zoukankan      html  css  js  c++  java
  • Java IO(十四) CharArrayReader 和 CharArrayWriter

    Java IO(十四) CharArrayReader 和 CharArrayWriter

    一、介绍

    CharArrayReader 和 CharArrayWriter 是字符数组输入流和字符数组输出流,它们同 ByteArrayIuputStream 和 ByteArrayOutputStream 类似,只不过一个是字节流,一个是字符流。CharArrayReader 和 CharArrayWriter 内部维护了一个字符数组,用来缓存数据。

    • CharArrayReader:字符数组输入流,继承于 Reader,用于读取字符数组,操作的数据是以字符为单位。
    • CharArrayWriter :字符数组输出流,继承于 Writer,用于写入字符数组,操作的数据是以字符为单位。

    二、构造方法

    (一)、CharArrayReader 

    (二)、CharArrayWriter

    三、常用API

    (一)、CharArrayReader 

    (二)、CharArrayWriter

    四、实例

    public class CharArrayDemo {
        private static char[] chs = new char[] 
                {'a','b','c','d','e','f','g','h','i','j','k','l','m',
                'n','o','p','q','r','s','t','u','v','w','x','y','z'};
        
        public static void main(String[] args) {
            write();
            read();
        }
    
        /**
         * CharArrayWriter 测试
         */
        public static void write() {
            CharArrayWriter out = null;
            try {
                out = new CharArrayWriter();
                out.write(chs);// 写入字符数组
                out.write('A');// 写入字符 A
                out.write(chs, 10, 10);// 从索引10开始,写入10个字符
                out.write("ABCDEFGHIJKLMN", 5, 5);// 写入字符串的一部分
                /*
                 * ① 写入0
                 * ② 接着写入 123456789
                 * ③ 写入字符串的一部分
                 */
                out.append('0').append("123456789").append(String.valueOf(chs), 5, 10);
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    if(out != null)
                        out.close();
                }catch(Exception e) {
                    e.printStackTrace();
                }
            }
        }
        
        /**
         * CharArrayReader 测试
         */
        public static void read() {
            
            CharArrayReader in = null;
            char[] buf = new char[10];
            int len = 0;
            try {
                in = new CharArrayReader(chs);
                for(int i = 0;i < 3;i++) {
                    if(in.ready())
                        System.out.println("read() : " + (char)in.read());// 读取一个字符输出
                }
                if (!in.markSupported()) {
                    System.out.println("mark not supported");
                    return;
                }
                len = in.read(buf);// 读取并缓存到字符数组
                System.out.println("read(buf) : " + new String(buf,0,len));
                in.mark(0);// 标记0位置
                in.skip(5);// 跳过5个字符
                len = in.read(buf, 0, 10);// 读取字符数组一部分
                System.out.println("read(buf, 0, 10) : " + new String(buf,0,len));
                in.reset();// 重置
                len = in.read(buf, 0, 10);// 读取字符数组一部分
                System.out.println("read(buf, 0, 10) : " + new String(buf,0,len));
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    if(in != null)
                        in.close();
                }catch(Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    Qtranslate是Win10系统的一款非常小众的翻译神器,真的是办公人员利器
    大文件查找软件(WizTree) v3.37 ---非常快
    DirPrintOK --- 将文件以树的形式列出、可导出到excel、html文件,用于整理电脑的文件,非常好用
    Linux五大类常用命令
    Android pm list 命令查看手机安装的apk信息
    Android adb命令列出当前设备所有apk安装的路径和包名
    Win10 Python2.7.6 如何使用pip命令?如何离线安装第三方模块?PyCharm设置Python2.7.6,、wxPython安装
    证件照在线免费移除背景或更换背景
    Ubuntu wps办公软件快捷键
    根据书籍的ISBN号查询书籍信息
  • 原文地址:https://www.cnblogs.com/lingq/p/12929848.html
Copyright © 2011-2022 走看看