public class

ParcelFileDescriptor

extends Object
implements Parcelable
java.lang.Object
   ↳ android.os.ParcelFileDescriptor

Class Overview

The FileDescriptor returned by readFileDescriptor(), allowing you to close it when done with it.

Summary

Nested Classes
public class ParcelFileDescriptor.AutoCloseInputStream An InputStream you can create on a ParcelFileDescriptor, which will take care of calling ParcelFileDescritor.close() for you when the stream is closed. 
public class ParcelFileDescriptor.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
Creator<ParcelFileDescriptor> CREATOR
int MODE_APPEND For use with open(File, int): append to end of file while writing.
int MODE_CREATE For use with open(File, int): create the file if it doesn't already exist.
int MODE_READ_ONLY For use with open(File, int): open the file with read-only access.
int MODE_READ_WRITE For use with open(File, int): open the file with read and write access.
int MODE_TRUNCATE For use with open(File, int): erase contents of file when opening.
int MODE_WORLD_READABLE For use with open(File, int): if MODE_CREATE has been supplied and this file doesn't already exist, then create the file with permissions such that any application can read it.
int MODE_WORLD_WRITEABLE For use with open(File, int): if MODE_CREATE has been supplied and this file doesn't already exist, then create the file with permissions such that any application can write it.
int MODE_WRITE_ONLY For use with open(File, int): open the file with write-only access.
[Expand]
Inherited Constants
From interface android.os.Parcelable
Public Constructors
ParcelFileDescriptor(ParcelFileDescriptor descriptor)
Public Methods
void close()
Close the ParcelFileDescriptor.
int describeContents()
Describe the kinds of special objects contained in this Parcelable's marshalled representation.
static ParcelFileDescriptor fromSocket(Socket socket)
Create a new ParcelFileDescriptor from the specified Socket.
FileDescriptor getFileDescriptor()
Retrieve the actual FileDescriptor associated with this object.
long getStatSize()
Return the total size of the file representing this fd, as determined by stat().
static ParcelFileDescriptor open(File file, int mode)
Create a new ParcelFileDescriptor accessing a given file.
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.
Protected Methods
void finalize()
Is called before the object's memory is being reclaimed by the VM.
[Expand]
Inherited Methods
From class java.lang.Object
From interface android.os.Parcelable

Constants

public static final Creator<ParcelFileDescriptor> CREATOR

public static final int MODE_APPEND

For use with open(File, int): append to end of file while writing.

Constant Value: 33554432 (0x02000000)

public static final int MODE_CREATE

For use with open(File, int): create the file if it doesn't already exist.

Constant Value: 134217728 (0x08000000)

public static final int MODE_READ_ONLY

For use with open(File, int): open the file with read-only access.

Constant Value: 268435456 (0x10000000)

public static final int MODE_READ_WRITE

For use with open(File, int): open the file with read and write access.

Constant Value: 805306368 (0x30000000)

public static final int MODE_TRUNCATE

For use with open(File, int): erase contents of file when opening.

Constant Value: 67108864 (0x04000000)

public static final int MODE_WORLD_READABLE

For use with open(File, int): if MODE_CREATE has been supplied and this file doesn't already exist, then create the file with permissions such that any application can read it.

Constant Value: 1 (0x00000001)

public static final int MODE_WORLD_WRITEABLE

For use with open(File, int): if MODE_CREATE has been supplied and this file doesn't already exist, then create the file with permissions such that any application can write it.

Constant Value: 2 (0x00000002)

public static final int MODE_WRITE_ONLY

For use with open(File, int): open the file with write-only access.

Constant Value: 536870912 (0x20000000)

Public Constructors

public ParcelFileDescriptor (ParcelFileDescriptor descriptor)

Public Methods

public void close ()

Close the ParcelFileDescriptor. This implementation closes the underlying OS resources allocated to represent this stream.

Throws
IOException If an error occurs attempting to close this ParcelFileDescriptor.

public int describeContents ()

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 static ParcelFileDescriptor fromSocket (Socket socket)

Create a new ParcelFileDescriptor from the specified Socket.

Parameters
socket The Socket whose FileDescriptor is used to create a new ParcelFileDescriptor.
Returns
  • A new ParcelFileDescriptor with the FileDescriptor of the specified Socket.

public FileDescriptor getFileDescriptor ()

Retrieve the actual FileDescriptor associated with this object.

Returns
  • Returns the FileDescriptor associated with this object.

public long getStatSize ()

Return the total size of the file representing this fd, as determined by stat(). Returns -1 if the fd is not a file.

public static ParcelFileDescriptor open (File file, int mode)

Create a new ParcelFileDescriptor accessing a given file.

Parameters
file The file to be opened.
mode The desired access mode, must be one of MODE_READ_ONLY, MODE_WRITE_ONLY, or MODE_READ_WRITE; may also be any combination of MODE_CREATE, MODE_TRUNCATE, MODE_WORLD_READABLE, and MODE_WORLD_WRITEABLE.
Returns
  • Returns a new ParcelFileDescriptor pointing to the given file.
Throws
FileNotFoundException Throws FileNotFoundException if the given file does not exist or can not be opened with the requested mode.

public String toString ()

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 simply concatenates the class name, the '@' sign and a hexadecimal representation of the object's hashCode(), that is, it is equivalent to the following expression:

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

Returns
  • a printable representation of this object.

public void writeToParcel (Parcel out, int flags)

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.

Protected Methods

protected void finalize ()

Is called before the object's memory is being reclaimed by the VM. This can only happen once the VM has detected, during a run of the garbage collector, that the object is no longer reachable by any thread of the running application.

The method can be used to free system resources or perform other cleanup before the object is garbage collected. The default implementation of the method is empty, which is also expected by the VM, but subclasses can override finalize() as required. Uncaught exceptions which are thrown during the execution of this method cause it to terminate immediately but are otherwise ignored.

Note that the VM does guarantee that finalize() is called at most once for any object, but it doesn't guarantee when (if at all) finalize() will be called. For example, object B's finalize() can delay the execution of object A's finalize() method and therefore it can delay the reclamation of A's memory. To be safe, use a ReferenceQueue, because it provides more control over the way the VM deals with references during garbage collection.

Throws
Throwable