# Class FileItemStreamImpl

java.lang.Object
org.apache.tomcat.util.http.fileupload.impl.FileItemStreamImpl

All Implemented Interfaces:
  `FileItemHeadersSupport, FileItemStream`

public class FileItemStreamImpl extends Object implements FileItemStream
Default implementation of `FileItemStream`.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface FileItemStream

  `FileItemStream.ItemSkippedException`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FileItemStreamImpl(FileItemIteratorImpl pFileItemIterator, String pName, String pFieldName, String pContentType, boolean pFormField, long pContentLength)`
  Creates a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Closes the file item.
  `String`
  `getContentType()`
  Returns the items content type, or null.
  `String`
  `getFieldName()`
  Returns the items field name.
  `FileItemHeaders`
  `getHeaders()`
  Returns the file item headers.
  `String`
  `getName()`
  Returns the items file name.
  `boolean`
  `isFormField()`
  Returns, whether this is a form field.
  `InputStream`
  `openStream()`
  Returns an input stream, which may be used to read the items contents.
  `void`
  `setHeaders(FileItemHeaders pHeaders)`
  Sets the file item headers.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### FileItemStreamImpl

    public FileItemStreamImpl(FileItemIteratorImpl pFileItemIterator, String pName, String pFieldName, String pContentType, boolean pFormField, long pContentLength) throws FileUploadException, IOException
    Creates a new instance.
    Parameters:
      `pFileItemIterator` - The `iterator`, which returned this file item.
      `pName` - The items file name, or null.
      `pFieldName` - The items field name.
      `pContentType` - The items content type, or null.
      `pFormField` - Whether the item is a form field.
      `pContentLength` - The items content length, if known, or -1
    Throws:
      `IOException` - Creating the file item failed.
      `FileUploadException` - Parsing the incoming data stream failed.

- ## Method Details

  - ### getContentType

    public String getContentType()
    Returns the items content type, or null.
    Specified by:
      `getContentType` in interface `FileItemStream`
    Returns:
      Content type, if known, or null.

  - ### getFieldName

    public String getFieldName()
    Returns the items field name.
    Specified by:
      `getFieldName` in interface `FileItemStream`
    Returns:
      Field name.

  - ### getName

    public String getName()
    Returns the items file name.
    Specified by:
      `getName` in interface `FileItemStream`
    Returns:
      File name, if known, or null.
    Throws:
      `InvalidFileNameException` - The file name contains a NUL character, which might be an indicator of a security attack. If you intend to use the file name anyways, catch the exception and use InvalidFileNameException#getName().

  - ### isFormField

    public boolean isFormField()
    Returns, whether this is a form field.
    Specified by:
      `isFormField` in interface `FileItemStream`
    Returns:
      True, if the item is a form field, otherwise false.

  - ### openStream

    public InputStream openStream() throws IOException
    Returns an input stream, which may be used to read the items contents.
    Specified by:
      `openStream` in interface `FileItemStream`
    Returns:
      Opened input stream.
    Throws:
      `IOException` - An I/O error occurred.
    See Also:
      - `FileItemStream.ItemSkippedException`

  - ### close

    public void close() throws IOException
    Closes the file item.
    Throws:
      `IOException` - An I/O error occurred.

  - ### getHeaders

    public FileItemHeaders getHeaders()
    Returns the file item headers.
    Specified by:
      `getHeaders` in interface `FileItemHeadersSupport`
    Returns:
      The items header object

  - ### setHeaders

    public void setHeaders(FileItemHeaders pHeaders)
    Sets the file item headers.
    Specified by:
      `setHeaders` in interface `FileItemHeadersSupport`
    Parameters:
      `pHeaders` - The items header object