Package org.miaixz.bus.core.io
package org.miaixz.bus.core.io
IO相关封装,包括Inputstream、OutputStream、Buffer等实现
- Since:
- Java 17+
- Author:
- Kimi Liu
-
ClassDescription同时继承
Writer和实现Appendable的聚合类,用于适配两种接口操作读取带BOM头的流内容的Reader,如果非bom的流或无法识别的编码,则默认UTF-8 BOM定义:http://www.unicode.org/unicode/faq/utf_bom.html 00 00 FE FF = UTF-32, big-endian FF FE 00 00 = UTF-32, little-endian EF BB BF = UTF-8 FE FF = UTF-16, big-endian FF FE = UTF-16, little-endian 使用:FileInputStream fis = new FileInputStream(file); BomReader uin = new BomReader(fis);Byte Order Mark (BOM) 头描述 BOM定义:http://www.unicode.org/unicode/faq/utf_bom.html EF BB BF = UTF-8 FE FF = UTF-16BE, big-endian FF FE = UTF-16LE, little-endian 00 00 FE FF = UTF-32BE, big-endian FF FE 00 00 = UTF-32LE, little-endian不可变的字节序列编码探测器循环缓冲区快速字符串读取,相比jdk的StringReader非线程安全,速度更快。借助StringBuilder提供快读的字符串写出,相比jdk的StringWriter非线程安全,速度更快。这是避免GC搅动和零填充所必需的 这个池是一个线程安全的静态单例行读取器,类似于BufferedInputStream,支持多行转义,规则如下: 支持'\n'和'\r\n'两种换行符,不支持'\r'换行符 如果想读取转义符,必须定义为'\\' 多行转义后的换行符和空格都会被忽略Reader包装缓冲区的一段 缓冲区中的每个段都是一个循环链表节点,它引用以下内容和 缓冲区中前面的段 池中的每个段都是一个单链列表节点,引用池 段的底层字节数组可以在缓冲区和字节字符串之间共享 当一个 段不能回收,也不能改变它的字节数据 唯一的例外是允许所有者段附加到段中,写入数据limit及以上 每个字节数组都有一个单独的拥有段 的立场, 限制、prev和next引用不共享Stream进度条 提供流拷贝进度监测,如开始、结束触发,以及进度回调。 注意进度回调的total参数为总大小,某些场景下无总大小的标记,则此值应为-1或者Long.MAX_VALUE,表示此参数无效。