项目作者: marschall

项目描述 :
implementations of java.io.Writer with different trade-offs
高级语言: Java
项目地址: git://github.com/marschall/writers.git
创建时间: 2019-09-18T10:28:08Z
项目社区:https://github.com/marschall/writers

开源协议:

下载


Writers Maven Central Javadocs

Implementations of java.io.Writer with different trade-offs.

java.io.OutputStreamWriter is very flexible and supports any encoding. However its use of sun.nio.cs.StreamEncoder can result in a noticeable overhead for small writes. It allocates a few temporary objects which for small writes can be noticeable. By addressing only special cases we can make optimizations based on different trade-offs.

Currently we only offer the following two classes:

  • com.github.marschall.writers.AsciiOutputStreamWriter, only supports US-ASCII.
    • does not allocate any objects
    • thread-safe
  • com.github.marschall.writers.BufferedAsciiOutputStreamWriter, only supports US-ASCII but also buffers like a java.io.BufferedOutputStream. This can result in more efficient writes than using com.github.marschall.writers.AsciiOutputStreamWriter with java.io.BufferedOutputStream.
    • does not allocate any objects beyond the initial byte[], the #write and #append methods do not allocate memory
    • uses bulk array copy methods on Java 9+
    • not thread-safe

This project requires Java 11.