public class

AssetFileDescriptor

extends Object
implements Parcelable
java.lang.Object
   ↳ android.content.res.AssetFileDescriptor

Class Overview

File descriptor of an entry in the AssetManager. This provides your own opened FileDescriptor that can be used to read the data, as well as the offset and length of that entry's data in the file.

Summary

Nested Classes
class AssetFileDescriptor.AutoCloseInputStream An InputStream you can create on a ParcelFileDescriptor, which will take care of calling ParcelFileDescritor.close() for you when the stream is closed. 
class AssetFileDescriptor.AutoCloseOutputStream An OutputStream you can create on a ParcelFileDescriptor, which will take care of calling ParcelFileDescritor.close() for you when the stream is closed. 
Constants
long UNKNOWN_LENGTH Length used with AssetFileDescriptor(ParcelFileDescriptor, long, long) and getDeclaredLength() when a length has not been declared.
[Expand]
Inherited Constants
From interface android.os.Parcelable
Fields
public static final Creator<AssetFileDescriptor> CREATOR
Public Constructors
AssetFileDescriptor(ParcelFileDescriptor fd, long startOffset, long length)
Create a new AssetFileDescriptor from the given values.
Public Methods
void close()
Convenience for calling getParcelFileDescriptor().close().
FileInputStream createInputStream()
Create and return a new auto-close input stream for this asset.
FileOutputStream createOutputStream()
Create and return a new auto-close output stream for this asset.
int describeContents()
Describe the kinds of special objects contained in this Parcelable's marshalled representation.
long getDeclaredLength()
Return the actual number of bytes that were declared when the AssetFileDescriptor was constructed.
FileDescriptor getFileDescriptor()
Returns the FileDescriptor that can be used to read the data in the file.
long getLength()
Returns the total number of bytes of this asset entry's data.
ParcelFileDescriptor getParcelFileDescriptor()
The AssetFileDescriptor contains its own ParcelFileDescriptor, which in addition to the normal FileDescriptor object also allows you to close the descriptor when you are done with it.
long getStartOffset()
Returns the byte offset where this asset entry's data starts.
String toString()
Returns a string containing a concise, human-readable description of this object.
void writeToParcel(Parcel out, int flags)
Flatten this object in to a Parcel.
[Expand]
Inherited Methods
From class java.lang.Object
From interface android.os.Parcelable

Constants

public static final long UNKNOWN_LENGTH

Since: API Level 3

Length used with AssetFileDescriptor(ParcelFileDescriptor, long, long) and getDeclaredLength() when a length has not been declared. This means the data extends to the end of the file.

Constant Value: -1 (0xffffffffffffffff)

Fields

public static final Creator<AssetFileDescriptor> CREATOR

Since: API Level 3

Public Constructors

public AssetFileDescriptor (ParcelFileDescriptor fd, long startOffset, long length)

Since: API Level 1

Create a new AssetFileDescriptor from the given values.

Parameters
fd The underlying file descriptor.
startOffset The location within the file that the asset starts. This must be 0 if length is UNKNOWN_LENGTH.
length The number of bytes of the asset, or UNKNOWN_LENGTH if it extends to the end of the file.

Public Methods

public void close ()

Since: API Level 1

Convenience for calling getParcelFileDescriptor().close().

Throws
IOException

public FileInputStream createInputStream ()

Since: API Level 3

Create and return a new auto-close input stream for this asset. This will either return a full asset AssetFileDescriptor.AutoCloseInputStream, or an underlying ParcelFileDescriptor.AutoCloseInputStream depending on whether the the object represents a complete file or sub-section of a file. You should only call this once for a particular asset.

Throws
IOException

public FileOutputStream createOutputStream ()

Since: API Level 3

Create and return a new auto-close output stream for this asset. This will either return a full asset AssetFileDescriptor.AutoCloseOutputStream, or an underlying ParcelFileDescriptor.AutoCloseOutputStream depending on whether the the object represents a complete file or sub-section of a file. You should only call this once for a particular asset.

Throws
IOException

public int describeContents ()

Since: API Level 3

Describe the kinds of special objects contained in this Parcelable's marshalled representation.

Returns
  • a bitmask indicating the set of special object types marshalled by the Parcelable.

public long getDeclaredLength ()

Since: API Level 3

Return the actual number of bytes that were declared when the AssetFileDescriptor was constructed. Will be UNKNOWN_LENGTH if the length was not declared, meaning data should be read to the end of the file.

public FileDescriptor getFileDescriptor ()

Since: API Level 1

Returns the FileDescriptor that can be used to read the data in the file.

public long getLength ()

Since: API Level 1

Returns the total number of bytes of this asset entry's data. May be UNKNOWN_LENGTH if the asset extends to the end of the file. If the AssetFileDescriptor was constructed with UNKNOWN_LENGTH, this will use ParcelFileDescriptor.getStatSize() to find the total size of the file, returning that number if found or UNKNOWN_LENGTH if it could not be determined.

public ParcelFileDescriptor getParcelFileDescriptor ()

Since: API Level 1

The AssetFileDescriptor contains its own ParcelFileDescriptor, which in addition to the normal FileDescriptor object also allows you to close the descriptor when you are done with it.

public long getStartOffset ()

Since: API Level 1

Returns the byte offset where this asset entry's data starts.

public String toString ()

Since: API Level 1

Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:

   getClass().getName() + '@' + Integer.toHexString(hashCode())

See Writing a useful toString method if you intend implementing your own toString method.

Returns
  • a printable representation of this object.

public void writeToParcel (Parcel out, int flags)

Since: API Level 3

Flatten this object in to a Parcel.

Parameters
out The Parcel in which the object should be written.
flags Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.