zoukankan      html  css  js  c++  java
  • 详解 字符内存操作流

    (请观看本人博文——《详解 内存操作流》


    @


    字符内存操作流

    字符内存操作流 按照功能分 ,共分为 两种:

    分类

    1. 操作字符数组
      CharArrayWrite
      CharArrayReader
    2. 操作字符串
      StringWriter
      StringReader

    那么,本人现在就对这两种字符内存操作流进行下讲解:


    首先是 操作字符数粗的 CharArrayWrite类 和 CharArrayReader类:

    CharArrayWrite类:

    首先,本人来展示下这个类的构造方法
    构造方法

    • CharArrayWriter()
      创建一个新的 CharArrayWriter
    • CharArrayWriter(int initialSize)
      创建一个具有指定初始大小的新 CharArrayWriter

    现在,本人来展示下这个类的常用API

    常用API

    • CharArrayWriter append(char c)
      将指定字符添加到此 writer
    • CharArrayWriter append(CharSequence csq)
      将指定的字符序列添加到此 writer
    • CharArrayWriter append(CharSequence csq, int start, int end)
      将指定字符序列的子序列添加到此 writer
    • void close()
      关闭该流
    • void flush()
      刷新该流的缓冲
    • void reset()
      重置该缓冲区,以便再次使用它而无需丢弃已分配的缓冲区
    • int size()
      返回缓冲区的当前大小
    • char[] toCharArray()
      返回输入数据的副本
    • String toString()
      将输入数据转换为字符串
    • void write(char[] c, int off, int len)
      将字符写入缓冲区
    • void write(int c)
      将一个字符写入缓冲区
    • void write(String str, int off, int len)
      将字符串的某一部分写入缓冲区
    • void writeTo(Writer out)
      将缓冲区的内容写入另一个字符流

    现在,本人来展示下这些API的使用:

    package edu.youzg.about_io.about_file.core.Test;
    
    import java.io.*;
    
    public class Test {
    
        public static void main(String[] args) throws IOException{
            CharArrayWriter writer = new CharArrayWriter();
            writer.write("右转哥");
            writer.write("666");
            writer.write("我要单推右转哥");
    
            //取出缓冲区中的数据
            char[] chars = writer.toCharArray();
            System.out.println(String.valueOf(chars));
            System.out.println(new String(chars));
            System.out.println(writer.toString());
        }
    
    }
    

    现在,本人来展示下运行结果:
    在这里插入图片描述

    CharArrayReader类:

    首先,本人来展示下这个类的构造方法

    构造方法:

    • CharArrayReader(char[] buf)
      根据指定的 char 数组创建一个 CharArrayReader
    • CharArrayReader(char[] buf, int offset, int length)
      根据指定的 char 数组创建一个 CharArrayReader

    现在,本人来展示下这个类的常用API

    常用API:

    • void close()
      关闭该流并释放与之关联的所有系统资源
    • void mark(int readAheadLimit)
      标记流中的当前位置
    • boolean markSupported()
      判断此流是否支持 mark() 操作(它一定支持)
    • int read()
      读取单个字符
    • int read(char[] b, int off, int len)
      将字符读入数组的某一部分
    • boolean ready()
      判断此流是否已准备好被读取
    • void reset()
      将该流重置为最新的标记,如果从未标记过,则将其重置到开头
    • long skip(long n)
      跳过字符

    那么,现在,本人来展示下这些API的使用:

    package edu.youzg.about_io.about_file.core.Test;
    
    import java.io.*;
    
    public class Test {
    
        public static void main(String[] args) throws IOException{
            char[] chars = "右转哥666".toCharArray();
            CharArrayReader reader = new CharArrayReader(chars);
    
            for (int i = 0; i < chars.length; i++) {
                int read = reader.read();
                System.out.println((char) read);
            }
            reader.close();
        }
    
    }
    

    在这里插入图片描述


    现在,本人来讲解下 操作字符串 的 StringWriter类 和 StringReader类:

    StringWriter类:

    首先,本人来讲解下这个类的 构造方法:

    构造方法:

    • StringWriter()
      使用默认初始字符串缓冲区大小创建一个新字符串 writer
    • StringWriter(int initialSize)
      使用指定初始字符串缓冲区大小创建一个新字符串 writer

    现在,本人来讲解下这个类的常用API

    常用API

    • StringWriter append(char c)
      将指定字符添加到此 writer
    • StringWriter append(CharSequence csq)
      将指定的字符序列添加到此 writer
    • StringWriter append(CharSequence csq, int start, int end)
      将指定字符序列的子序列添加到此 writer
    • void close()
      关闭 StringWriter 无效
    • void flush()
      刷新该流的缓冲
    • StringBuffer getBuffer()
      返回该字符串缓冲区本身
    • String toString()
      以字符串的形式返回该缓冲区的当前值
    • void write(char[] cbuf, int off, int len)
      写入字符数组的某一部分
    • void write(int c)
      写入单个字符
    • void write(String str)
      写入一个字符串
    • void write(String str, int off, int len)
      写入字符串的某一部分

    现在,本人来展示下这些API 的使用:

    package edu.youzg.about_io.about_file.core.Test;
    
    import java.io.*;
    
    public class Test {
    
        public static void main(String[] args) throws IOException{
            StringWriter stringWriter = new StringWriter();
            stringWriter.write("magical coder ");
            stringWriter.append("is not me");
            String s = stringWriter.toString();
            System.out.println(s);
    
            stringWriter.close();
        }
    
    }
    

    现在,本人来展示下运行结果:
    在这里插入图片描述

    StringReader类:

    首先,本人来展示下这个类的构造方法

    构造方法:

    • StringReader(String s)
      创建一个新字符串 reader

    本人来展示下这个类的常用API

    常用API:

    • void close()
      关闭该流并释放与之关联的所有系统资源
    • void mark(int readAheadLimit)
      标记流中的当前位置
    • boolean markSupported()
      判断此流是否支持 mark() 操作以及支持哪一项操作
    • int read()
      读取单个字符
    • int read(char[] cbuf, int off, int len)
      将字符读入数组的某一部分
    • boolean ready()
      判断此流是否已经准备好用于读取
    • void reset()
      将该流重置为最新的标记,如果从未标记过,则将其重置到该字符串的开头
    • long skip(long ns)
      跳过流中指定数量的字符

    现在,本人来展示下部分API的使用:

    package edu.youzg.about_io.about_file.core.Test;
    
    import java.io.*;
    import java.nio.charset.Charset;
    
    public class Test {
    
        public static void main(String[] args) throws IOException{
            StringReader reader = new StringReader("magical coder is not me");
            char[] chars = new char[10];
            int len = 0;
            
            while ((len = reader.read(chars)) != -1) {
                System.out.println(chars);
            }
    
            reader.close();
        }
    
    }
    

    现在,本人来展示下运行结果:
    在这里插入图片描述

    (本人《详解 内存操作流》博文链接:https://www.cnblogs.com/codderYouzg/p/12418617.html
    (本人 I/O流总集篇 博文链接:https:////www.cnblogs.com/codderYouzg/p/12418404.html

  • 相关阅读:
    PHP的学习--在sublime中使用XDebug(Ubuntu)
    Yii的学习(4)--Active Record
    Yii的学习(3)--查询生成器 (Query Builder)
    数据可视化(9)--数据可视化6步法
    HTML5的学习--performance获取加载时间的工具
    HTML5的学习--performance
    存储过程之三—语句
    存储过程之二—变量
    数据库自定义函数
    存储过程之一—建立简单的存储过程
  • 原文地址:https://www.cnblogs.com/codderYouzg/p/12418647.html
Copyright © 2011-2022 走看看