Android 2.3 Gingerbread

android.content.res
Class AssetFileDescriptor

java.lang.Object
  extended by android.content.res.AssetFileDescriptor
All Implemented Interfaces:
Parcelable

public class AssetFileDescriptor
extends Object
implements Parcelable

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.


Nested Class Summary
static 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.
static 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.
 
Nested classes/interfaces inherited from interface android.os.Parcelable
Parcelable.Creator<T>
 
Field Summary
static Parcelable.Creator<AssetFileDescriptor> CREATOR
           
static long UNKNOWN_LENGTH
          Length used with AssetFileDescriptor(ParcelFileDescriptor, long, long) and getDeclaredLength() when a length has not been declared.
 
Fields inherited from interface android.os.Parcelable
CONTENTS_FILE_DESCRIPTOR, PARCELABLE_WRITE_RETURN_VALUE
 
Constructor Summary
AssetFileDescriptor(Parcel src)
           
AssetFileDescriptor(ParcelFileDescriptor fd, long startOffset, long length)
          Create a new AssetFileDescriptor from the given values.
 
Method Summary
 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.
static AssetFileDescriptor fromMemoryFile(MemoryFile memoryFile)
          Creates an AssetFileDescriptor from a memory file.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UNKNOWN_LENGTH

public static final long UNKNOWN_LENGTH
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.

See Also:
Constant Field Values

CREATOR

public static final Parcelable.Creator<AssetFileDescriptor> CREATOR
Constructor Detail

AssetFileDescriptor

public AssetFileDescriptor(ParcelFileDescriptor fd,
                           long startOffset,
                           long length)
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 {@link #UNKNOWN_LENGTH if it extends to the end of the file.

AssetFileDescriptor

AssetFileDescriptor(Parcel src)
Method Detail

getParcelFileDescriptor

public 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.


getFileDescriptor

public FileDescriptor getFileDescriptor()
Returns the FileDescriptor that can be used to read the data in the file.


getStartOffset

public long getStartOffset()
Returns the byte offset where this asset entry's data starts.


getLength

public long getLength()
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.

See Also:
getDeclaredLength()

getDeclaredLength

public long getDeclaredLength()
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.

See Also:
getDeclaredLength()

close

public void close()
           throws IOException
Convenience for calling getParcelFileDescriptor().close().

Throws:
IOException

createInputStream

public FileInputStream createInputStream()
                                  throws IOException
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

createOutputStream

public FileOutputStream createOutputStream()
                                    throws IOException
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

toString

public String toString()
Description copied from class: Object
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.

Overrides:
toString in class Object
Returns:
a printable representation of this object.

describeContents

public int describeContents()
Description copied from interface: Parcelable
Describe the kinds of special objects contained in this Parcelable's marshalled representation.

Specified by:
describeContents in interface Parcelable
Returns:
a bitmask indicating the set of special object types marshalled by the Parcelable.

writeToParcel

public void writeToParcel(Parcel out,
                          int flags)
Description copied from interface: Parcelable
Flatten this object in to a Parcel.

Specified by:
writeToParcel in interface Parcelable
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.PARCELABLE_WRITE_RETURN_VALUE.

fromMemoryFile

public static AssetFileDescriptor fromMemoryFile(MemoryFile memoryFile)
                                          throws IOException
Creates an AssetFileDescriptor from a memory file.

Throws:
IOException

Android 2.3 Gingerbread