# Package org.apache.sis.io

package org.apache.sis.io
Extensions to standard Java I/O (`Reader`, `Writer`, `Appendable`) and `Format`. 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

- Related Packages
  Package
  Description
  org.apache.sis.io.wkt
  Well Known Text (WKT) parsing and formatting.
- Class
  Description
  CompoundFormat<T>
  Base class of `Format` implementations which delegate part of their work to other `Format` instances.
  InvalidSeekException
  Thrown when an input stream or a channel can not modify its position to the given value.
  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.