# Package org.apache.poi.util

Top-level util package are classes that are useful throughout the project.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  DelayableLittleEndianOutput | Implementors of this interface allow client code to 'delay' writing to a certain section of a data output stream. A typical application is for writing BIFF records when the size is not known until well after the header has been written.
  FixedField | behavior of a field at a fixed location within a byte array
  GenericRecordJsonWriter.GenericRecordHandler |
  GenericRecordXmlWriter.GenericRecordHandler |
  LittleEndianConsts | a repository for constants shared by classes within this package
  LittleEndianInput |
  LittleEndianOutput |
  POILogger | A logger interface that strives to make it as easy as possible for developers to write log calls, while simultaneously making those calls as cheap as possible by performing lazy evaluation of the log message.
  TempFileCreationStrategy | Interface used by the `TempFile` utility class to create temporary files.

- Class Summary
  Class | Description
  --- | ---
  ArrayUtil | Utility classes for dealing with arrays.
  BitField | Manage operations dealing with bit-mapped fields.
  BitFieldFactory | Returns immutable Bitfield instances.
  BoundedInputStream | This is a stream that will only supply bytes up to a certain length - if its position goes above that, it will stop.
  ByteField | representation of a byte (8-bit) field at a fixed location within a byte array
  CloseIgnoringInputStream | A wrapper around an `InputStream`, which ignores close requests made to it.
  CodePageUtil | Utilities for working with Microsoft CodePages.
  CommonsLogger | A logger class that strives to make it as easy as possible for developers to write log calls, while simultaneously making those calls as cheap as possible by performing lazy evaluation of the log message.
  Configurator | Helper for fetching int values from system properties
  DefaultTempFileCreationStrategy | Default implementation of the `TempFileCreationStrategy` used by `TempFile`: Files are collected into one directory and by default are deleted on exit from the VM.
  Dimension2DDouble |
  DrawingDump | Dump out the aggregated escher records
  FontMetricsDumper |
  GenericRecordJsonWriter |
  GenericRecordUtil |
  GenericRecordUtil.AnnotatedFlag |
  GenericRecordXmlWriter |
  HexDump | dump data in hexadecimal format
  HexRead | Utilities to read hex from files.
  IntegerField | representation of an integer (32-bit) field at a fixed location within a byte array
  IntList | A List of int's; as full an implementation of the java.util.List interface as possible, with an eye toward minimal creation of objects the mimicry of List is as follows: if possible, operations designated 'optional' in the List interface are attempted wherever the List interface refers to an Object, substitute int wherever the List interface refers to a Collection or List, substitute IntList the mimicry is not perfect, however: operations involving Iterators or ListIterators are not supported remove(Object) becomes removeValue to distinguish it from remove(int index) subList is not supported
  IntMapper<T> | A List of objects that are indexed AND keyed by an int; also allows for getting the index of a value in the list
  IOUtils |
  LittleEndian | a utility class for handling little-endian numbers, which the 80x86 world is replete with.
  LittleEndianByteArrayInputStream | Adapts a plain byte array to `LittleEndianInput`
  LittleEndianByteArrayOutputStream | Adapts a plain byte array to `LittleEndianOutput`
  LittleEndianCP950Reader | Stream that converts CP950 (MSOffice's dialect of Big5), with zero-byte padding for ASCII and in LittleEndianOrder.
  LittleEndianInputStream | Wraps an `InputStream` providing `LittleEndianInput`
  LittleEndianOutputStream |
  LocaleUtil | This utility class is used to set locale and time zone settings beside of the JDK internal `Locale.setDefault(Locale)` and `TimeZone.setDefault(TimeZone)` methods, because the locale/time zone specific handling of certain office documents - maybe for different time zones / locales ...
  LongField | representation of a long (16-bit) field at a fixed location within a byte array
  LZWDecompresser | This class provides common functionality for the various LZW implementations in the different file formats.
  NullLogger | A logger class that strives to make it as easy as possible for developers to write log calls, while simultaneously making those calls as cheap as possible by performing lazy evaluation of the log message.
  POILogFactory | Provides logging without clients having to mess with configuration/initialization.
  ReplacingInputStream | Simple FilterInputStream that can replace occurrences of bytes with something else.
  RLEDecompressingInputStream | Wrapper of InputStream which provides Run Length Encoding (RLE) decompression on the fly.
  ShortField | representation of a short (16-bit) field at a fixed location within a byte array
  StaxHelper | Deprecated use `XMLHelper`
  StringCodepointsIterable |
  StringUtil | Collection of string handling utilities
  StringUtil.StringsIterator | An Iterator over an array of Strings.
  SystemOutLogger | A logger class that strives to make it as easy as possible for developers to write log calls, while simultaneously making those calls as cheap as possible by performing lazy evaluation of the log message.
  TempFile | Interface for creating temporary files.
  Units |
  XMLHelper | Helper methods for working with javax.xml classes.

- Enum Summary
  Enum | Description
  --- | ---
  LocaleID | Locale Collection

- Exception Summary
  Exception | Description
  --- | ---
  DocumentFormatException | This is similar to `RecordFormatException`, except this is thrown when there's a higher order problem with parsing a document beyond individual records.
  LittleEndian.BufferUnderrunException | Exception to handle buffer underruns
  RecordFormatException | A common exception thrown by our binary format parsers (especially HSSF and DDF), when they hit invalid format or data when processing a record.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  Beta | Signifies that a public API (public class, method or field) is subject to incompatible changes, or even removal, in a future release.
  Internal | Program elements annotated @Internal are intended for POI internal use only.
  NotImplemented | This feature has not been implemented yet.
  Removal | Program elements annotated @Removal track the earliest final release when a deprecated feature will be removed.
  SuppressForbidden | Marking class for elements to be ignored by the forbidden apis check

## Package org.apache.poi.util Description

Top-level util package are classes that are useful throughout the project. These classes are generally generic enough to be useful in any project and should be contributed elsewhere!

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.