• 【jdk源码分析】java.lang.Appendable


    1、概述

    public interface Appendable
    能够被添加 char 序列和值的对象。如果某个类的实例打算接收取自 Formatter 的格式化输出,那么该类必须实现 Appendable 接口。
    要添加的字符应该是有效的 Unicode 字符,正如 Unicode Character Representation 中描述的那样。注意,增补字符可能由多个 16 位 char 值组成。
    Appendable 对于多线程访问而言没必要是安全的。线程安全由扩展和实现此接口的类负责。
    由于此接口可能由具有不同的错误处理风格的现有类实现,所以无法保证错误不会传播给调用者

    2、已知实现的子类

     1 BufferedWriter, 
     2 CharArrayWriter,
     3 CharBuffer, 
     4 FileWriter, 
     5 FilterWriter,  
     6 LogStream, 
     7 OutputStreamWriter, 
     8 PipedWriter, 
     9 PrintStream, 
    10 PrintWriter, 
    11 StringBuffer, 
    12 StringBuilder, 
    13 StringWriter, 
    14 Writer

    3、源码

     1 public interface Appendable{
     2         /**
     3          * 向此Appendable添加指定的字符序列。
     4          * 有时可能不会全部添加真个序列,这取决于使用哪个类来实现字符序列 csq。
     5          * 例如:如果csq是java.nio.CharBuffer的实例,则通过缓冲区的位置和限制来定义要添加的子序列。
     6          * @param  csq
     7          * 要添加的字符串序列。如果 csq 为 null,则向该 Appendable 添加四个字符 "null"。 
     8          * @return  此Appendable的引用
     9          * @throws  IOException
    10          *          如果发生I/O错误
    11          */
    12         Appendable append(CharSequence csq) throws IOException;
    13         /**
    14          * 向此Appendable添加指定的字符序列的子序列。
    15          * 当csq不为null的时候,调用 out.append(csq, start, end) 方法
    16          * 和调用 out.append(csq.subSequence(start, end))方法完全相同
    17          *
    18          * @param  csq
    19          * 子序列将被添加的字符序列。如果 csq 为 null,则添加四个字符 "null",就好像 csq 包含这些字符一样。
    20          * @param  start
    21          * 子序列中第一个字符索引
    22          * @param  end
    23          * 在子序列中最后一个字符后面的字符的索引。
    24          * @return 此Appendable的引用
    25          * @throws  IndexOutOfBoundsException
    26          * 如果 start 或 end 为负,以及 start 大于 end 或者 end 大于 csq.length() 
    27          * @throws  IOException
    28          *        如果发生I/O错误
    29          */
    30         Appendable append(CharSequence csq, int start, int end) throws IOException;
    31         //向此 Appendable 添加指定字符。
    32         Appendable append(char c) throws IOException;
    33 
    34     }

    4、例子1

    5、例子2

  • 相关阅读:
    Extjs 集合了1713个icon图标的CSS文件
    Sencha Touch 2 DataView / List 分页
    Sencha Touch 笔记
    [奉献]通过命令快速启动应用程序的小软件(QuickLauncher V1.1)
    PTC FlexPLM rfa 接口自动创建产品规格
    Excel Vba 调用WebService的两种方式,解决MSSOAP30 64位不兼容问题
    Extjs4.1.x 框架搭建 采用Application动态按需加载MVC各模块
    C#获取远程图片,需要Form用户名和密码的Authorization认证
    [转]plsql不安装oracle客户端 进行远程连接
    WPF、Silverlight程序编码资料收集
  • 原文地址:https://www.cnblogs.com/xiaostudy/p/10762384.html
Copyright © 2020-2023  润新知