org.apache.http.entity

## Class FileEntity

- java.lang.Object
- - org.apache.http.entity.AbstractHttpEntity
  - - org.apache.http.entity.FileEntity

All Implemented Interfaces:
  Cloneable, HttpEntity

    @NotThreadSafe
    public class FileEntity
    extends AbstractHttpEntity
    implements Cloneable

A self contained, repeatable entity that obtains its content from a file.

Since:
  4.0

### Field Summary

Fields
`protected File` `file`

### Fields inherited from class org.apache.http.entity.AbstractHttpEntity

`chunked, contentEncoding, contentType, OUTPUT_BUFFER_SIZE`

### Constructor Summary

Constructors
Constructor and Description
`FileEntity(File file)`
`FileEntity(File file, ContentType contentType)`
`FileEntity(File file, String contentType)` Deprecated. (4.1.3) `FileEntity(File, ContentType)`

### Method Summary

Methods
`Object` `clone()`
`InputStream` `getContent()` Returns a content stream of the entity.
`long` `getContentLength()` Tells the length of the content, if known.
`boolean` `isRepeatable()` Tells if the entity is capable of producing its data more than once.
`boolean` `isStreaming()` Tells that this entity is not streaming.
`void` `writeTo(OutputStream outstream)` Writes the entity content out to the output stream.

### Methods inherited from class org.apache.http.entity.AbstractHttpEntity

`consumeContent, getContentEncoding, getContentType, isChunked, setChunked, setContentEncoding, setContentEncoding, setContentType, setContentType`

### Methods inherited from class java.lang.Object

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

### Field Detail

#### file

    protected final File file

### Constructor Detail

#### FileEntity

    @Deprecated
    public FileEntity(File file,
                         String contentType)

Deprecated. (4.1.3) `FileEntity(File, ContentType)`

#### FileEntity

    public FileEntity(File file,
              ContentType contentType)

Since:
  4.2

#### FileEntity

    public FileEntity(File file)

Since:
  4.2

### Method Detail

#### isRepeatable

    public boolean isRepeatable()

Description copied from interface: `HttpEntity`
Tells if the entity is capable of producing its data more than once. A repeatable entity's getContent() and writeTo(OutputStream) methods can be called more than once whereas a non-repeatable entity's can not.

Specified by:
  `isRepeatable` in interface `HttpEntity`
Returns:
  true if the entity is repeatable, false otherwise.

#### getContentLength

    public long getContentLength()

Description copied from interface: `HttpEntity`
Tells the length of the content, if known.

Specified by:
  `getContentLength` in interface `HttpEntity`
Returns:
  the number of bytes of the content, or a negative number if unknown. If the content length is known but exceeds `Long.MAX_VALUE`, a negative number is returned.

#### getContent

    public InputStream getContent()
                           throws IOException

Description copied from interface: `HttpEntity`
Returns a content stream of the entity. `Repeatable` entities are expected to create a new instance of `InputStream` for each invocation of this method and therefore can be consumed multiple times. Entities that are not `repeatable` are expected to return the same `InputStream` instance and therefore may not be consumed more than once.

IMPORTANT: Please note all entity implementations must ensure that all allocated resources are properly deallocated after the `InputStream.close()` method is invoked.

Specified by:
  `getContent` in interface `HttpEntity`
Returns:
  content stream of the entity.
Throws:
  `IOException` - if the stream could not be created
See Also:
  `HttpEntity.isRepeatable()`

#### writeTo

    public void writeTo(OutputStream outstream)
                 throws IOException

Description copied from interface: `HttpEntity`
Writes the entity content out to the output stream.

IMPORTANT: Please note all entity implementations must ensure that all allocated resources are properly deallocated when this method returns.

Specified by:
  `writeTo` in interface `HttpEntity`
Parameters:
  `outstream` - the output stream to write entity content to
Throws:
  `IOException` - if an I/O error occurs

#### isStreaming

    public boolean isStreaming()

Tells that this entity is not streaming.

Specified by:
  `isStreaming` in interface `HttpEntity`
Returns:
  `false`

#### clone

    public Object clone()
                 throws CloneNotSupportedException

Overrides:
  `clone` in class `Object`
Throws:
  `CloneNotSupportedException`