# Package org.apache.sis.io

Extensions to standard Java I/O (`Reader`, `Writer`, `Appendable`). Many classes defined in this package are filters applying on-the-fly formatting while writing text to the output device. For example `LineAppender` can wrap lines to some maximal line length (e.g. 80 characters), and `TableAppender` replaces all occurrence of `'\t'` by the amount of spaces needed for producing a tabular output.
Note: One of the formatter classes defined in this package is a `java​.text​.Format` subclass. While traditionally though as part of `text` packages, that `Format` is defined in this I/O package because it can format to an `Appendable` and for consistency with the `org​.apache​.sis​.io​.wkt` package.
Unicode characters
Some formatters in this package make extensive use of Unicode characters. This may produce unexpected results in a Windows console, unless the underlying output stream uses the correct encoding (e.g. `new OutputStreamWriter(System​.out, "Cp437")`). To display the appropriate code page for a Windows console, type `chcp` on the command line.
Supplementary Unicode characters
This package can handle the Unicode supplementary characters.

Since:
  0.3

Defined in the `sis-utility` module

- Class Summary
  Class | Description
  --- | ---
  CompoundFormat<T> | Base class of `Format` implementations which delegate part of their work to other `Format` instances.
  IO | Utilities methods working on `java​.io` objects.
  LineAppender | An `Appendable` which can apply different kinds of reformatting that depend on the End Of Line (EOL) occurrences.
  TableAppender | An `Appendable` which formats the text as a table suitable for displaying in devices using a monospaced font.
  TabularFormat<T> | Base class for parser and formatter of tabular data, providing control on line and column separators.

- Exception Summary
  Exception | Description
  --- | ---
  InvalidSeekException | Thrown when an input stream or a channel can not modify its position to the given value.