Most visited

Recently visited

Added in API level 1

ParcelFileDescriptor

public class ParcelFileDescriptor
extends Object implements Parcelable, Closeable

java.lang.Object
   ↳ android.os.ParcelFileDescriptor


FileDescriptor由 readFileDescriptor()返回,允许您在完成时关闭它。

Summary

Nested classes

class ParcelFileDescriptor.AutoCloseInputStream

您可以在ParcelFileDescriptor上创建一个InputStream,它将负责在流关闭时为您调用ParcelFileDescriptor.close()

class ParcelFileDescriptor.AutoCloseOutputStream

您可以在ParcelFileDescriptor上创建一个OutputStream,该流将关闭时为您调用ParcelFileDescriptor.close()

class ParcelFileDescriptor.FileDescriptorDetachedException

指示文件描述符已分离的异常。

interface ParcelFileDescriptor.OnCloseListener

回调,指示ParcelFileDescriptor已关闭。

Constants

int MODE_APPEND

open(File, int)使用:在写入时附加到文件结尾。

int MODE_CREATE

open(File, int)使用:如果该文件不存在,请创建该文件。

int MODE_READ_ONLY

用于 open(File, int) :以只读访问权限打开文件。

int MODE_READ_WRITE

open(File, int)使用:以读取和写入权限打开文件。

int MODE_TRUNCATE

open(File, int)使用:打开时擦除文件的内容。

int MODE_WORLD_READABLE

此常数在API级别19中已弃用。创建世界可读文件是非常危险的,并可能导致应用程序出现安全漏洞。 强烈不鼓励; 相反,应用程序应该使用的相互作用,如更正式的机制ContentProviderBroadcastReceiver ,并Service 无法保证此访问模式将保留在文件中,例如当它经历备份和恢复时。

int MODE_WORLD_WRITEABLE

此常数在API级别19中已弃用。创建可写入世界的文件非常危险,并可能导致应用程序出现安全漏洞。 强烈不鼓励; 相反,应用程序应该使用的相互作用,如更正式的机制ContentProviderBroadcastReceiver ,并Service 无法保证此访问模式将保留在文件中,例如当它经历备份和恢复时。

int MODE_WRITE_ONLY

用于 open(File, int) :以只写访问权限打开文件。

Inherited constants

From interface android.os.Parcelable

Fields

public static final Creator<ParcelFileDescriptor> CREATOR

Public constructors

ParcelFileDescriptor(ParcelFileDescriptor wrapped)

创建一个包裹另一个描述符的新ParcelFileDescriptor。

Public methods

static ParcelFileDescriptor adoptFd(int fd)

将原始原生fd的所有权转移到新的ParcelFileDescriptor中。

boolean canDetectErrors()

指示此ParcelFileDescriptor是否可以通信并检测远程错误/崩溃。

void checkError()

如果管道或套接字对的另一端遇到错误或崩溃,则检测并抛出。

void close()

关闭ParcelFileDescriptor。

void closeWithError(String msg)

关闭ParcelFileDescriptor,通知任何同位体处理时发生错误。

static ParcelFileDescriptor[] createPipe()

创建两个结构化为数据管道的ParcelFileDescriptor。

static ParcelFileDescriptor[] createReliablePipe()

创建两个结构化为数据管道的ParcelFileDescriptor。

static ParcelFileDescriptor[] createReliableSocketPair()

创建两个ParcelFileDescriptors,构造为一对相互连接的套接字。

static ParcelFileDescriptor[] createSocketPair()

创建两个ParcelFileDescriptors,构造为一对相互连接的套接字。

int describeContents()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。

int detachFd()

返回此ParcelFileDescriptor的本地fd int并将其从此对象中分离。

static ParcelFileDescriptor dup(FileDescriptor orig)

创建一个新的ParcelFileDescriptor,它是现有FileDescriptor的一个副本。

ParcelFileDescriptor dup()

创建一个新的ParcelFileDescriptor,它是现有FileDescriptor的一个副本。

static ParcelFileDescriptor fromDatagramSocket(DatagramSocket datagramSocket)

从指定的DatagramSocket创建一个新的ParcelFileDescriptor。

static ParcelFileDescriptor fromFd(int fd)

从原始原生fd创建一个新的ParcelFileDescriptor。

static ParcelFileDescriptor fromSocket(Socket socket)

从指定的套接字创建一个新的ParcelFileDescriptor。

int getFd()

为此ParcelFileDescriptor返回本地fd int。

FileDescriptor getFileDescriptor()

检索与此对象关联的实际FileDescriptor。

long getStatSize()

返回代表该fd的文件的总大小,由 stat()确定。

static ParcelFileDescriptor open(File file, int mode)

创建一个访问给定文件的新ParcelFileDescriptor。

static ParcelFileDescriptor open(File file, int mode, Handler handler, ParcelFileDescriptor.OnCloseListener listener)

创建一个访问给定文件的新ParcelFileDescriptor。

static int parseMode(String mode)

将表示文件模式(如“rw”)的字符串转换为适合与 open(File, int)一起使用的位掩码。

String toString()

返回对象的字符串表示形式。

void writeToParcel(Parcel out, int flags)

将此对象平铺到一个包裹中。 如果在标志中设置了PARCELABLE_WRITE_RETURN_VALUE ,则将副本写入宗地后文件描述符将被关闭。

Protected methods

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Inherited methods

From class java.lang.Object
From interface android.os.Parcelable
From interface java.io.Closeable
From interface java.lang.AutoCloseable

Constants

MODE_APPEND

Added in API level 3
int MODE_APPEND

open(File, int)使用:写入时附加到文件结尾。

常量值:33554432(0x02000000)

MODE_CREATE

Added in API level 1
int MODE_CREATE

open(File, int)使用:如果该文件尚不存在,请创建该文件。

常量值:134217728(0x08000000)

MODE_READ_ONLY

Added in API level 1
int MODE_READ_ONLY

open(File, int)使用:以只读访问权限打开文件。

常量值:268435456(0x10000000)

MODE_READ_WRITE

Added in API level 1
int MODE_READ_WRITE

open(File, int)使用:以读写权限打开文件。

常量值:805306368(0x30000000)

MODE_TRUNCATE

Added in API level 1
int MODE_TRUNCATE

用于 open(File, int) :打开时擦除文件的内容。

常量值:67108864(0x04000000)

MODE_WORLD_READABLE

Added in API level 1
int MODE_WORLD_READABLE

此常数在API级别19中已弃用。
创建世界可读的文件是非常危险的,并且很可能会在应用程序中造成安全漏洞。 强烈不鼓励; 相反,应用程序应该使用的相互作用,如更正式的机制ContentProviderBroadcastReceiver ,并Service 无法保证此访问模式将保留在文件中,例如当它经历备份和恢复时。

open(File, int)使用:如果已提供 MODE_CREATE且此文件尚不存在,请使用权限创建该文件,以便任何应用程序都可以读取该文件。

常数值:1(0x00000001)

MODE_WORLD_WRITEABLE

Added in API level 1
int MODE_WORLD_WRITEABLE

此常数在API级别19中已弃用。
创建世界可写文件是非常危险的,并且很可能会在应用程序中造成安全漏洞。 强烈不鼓励; 相反,应用程序应该使用的相互作用,如更正式的机制ContentProviderBroadcastReceiver ,并Service 无法保证此访问模式将保留在文件中,例如当它经历备份和恢复时。

open(File, int)使用:如果 MODE_CREATE已提供且该文件尚不存在,则创建具有权限的文件,以便任何应用程序都可以写入该文件。

常量值:2(0x00000002)

MODE_WRITE_ONLY

Added in API level 1
int MODE_WRITE_ONLY

用于 open(File, int) :以只写访问权限打开文件。

常量值:536870912(0x20000000)

Fields

CREATOR

Added in API level 1
Creator<ParcelFileDescriptor> CREATOR

Public constructors

ParcelFileDescriptor

Added in API level 1
ParcelFileDescriptor (ParcelFileDescriptor wrapped)

创建一个包裹另一个描述符的新ParcelFileDescriptor。 默认情况下,所有的方法调用都被委托给包装描述符。

Parameters
wrapped ParcelFileDescriptor

Public methods

adoptFd

Added in API level 13
ParcelFileDescriptor adoptFd (int fd)

将原始原生fd的所有权转移到新的ParcelFileDescriptor中。 返回的ParcelFileDescriptor现在拥有给定的fd,并将负责关闭它。 你不能自己关闭fd。

Parameters
fd int: The native fd that the ParcelFileDescriptor should adopt.
Returns
ParcelFileDescriptor Returns a new ParcelFileDescriptor holding a FileDescriptor for the given fd.

canDetectErrors

Added in API level 19
boolean canDetectErrors ()

指示此ParcelFileDescriptor是否可以通信并检测远程错误/崩溃。

Returns
boolean

也可以看看:

checkError

Added in API level 19
void checkError ()

如果管道或套接字对的另一端遇到错误或崩溃,则检测并抛出。 这允许读者区分有效的EOF和错误/崩溃。

如果ParcelFileDescriptor无法检测到远程错误,它将静默地返回。

Throws
IOException for normal errors.
ParcelFileDescriptor.FileDescriptorDetachedException if the remote side called detachFd(). Once detached, the remote side is unable to communicate any errors through closeWithError(String).

也可以看看:

close

Added in API level 1
void close ()

关闭ParcelFileDescriptor。 此实现关闭分配的代表此流的底层操作系统资源。

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

closeWithError

Added in API level 19
void closeWithError (String msg)

关闭ParcelFileDescriptor,通知任何同位体处理时发生错误。 如果此描述符的创建者没有观察到错误,它将正常关闭。

Parameters
msg String: describing the error; must not be null.
Throws
IOException

createPipe

Added in API level 9
ParcelFileDescriptor[] createPipe ()

创建两个结构化为数据管道的ParcelFileDescriptor。 返回数组中的第一个ParcelFileDescriptor是读取端; 第二个是写入端。

Returns
ParcelFileDescriptor[]
Throws
IOException

createReliablePipe

Added in API level 19
ParcelFileDescriptor[] createReliablePipe ()

创建两个结构化为数据管道的ParcelFileDescriptor。 返回数组中的第一个ParcelFileDescriptor是读取端; 第二个是写入端。

通常在检测到EOF后,写端可以通过closeWithError(String)传递错误消息,这可以由读取端调用checkError()来处理。 这也可以用来检测远程崩溃。

Returns
ParcelFileDescriptor[]
Throws
IOException

createReliableSocketPair

Added in API level 19
ParcelFileDescriptor[] createReliableSocketPair ()

创建两个ParcelFileDescriptors,构造为一对相互连接的套接字。 这两个插座是无法区分的。

两端都能够通过closeWithError(String)发送错误消息,通常在检测到EOF后,可以由另一端检测到checkError() 这也可以用来检测远程崩溃。

Returns
ParcelFileDescriptor[]
Throws
IOException

createSocketPair

Added in API level 19
ParcelFileDescriptor[] createSocketPair ()

创建两个ParcelFileDescriptors,构造为一对相互连接的套接字。 这两个插座是无法区分的。

Returns
ParcelFileDescriptor[]
Throws
IOException

describeContents

Added in API level 1
int describeContents ()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。 例如,如果对象将在writeToParcel(Parcel, int)的输出中包含writeToParcel(Parcel, int) ,则此方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR位。

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance.

detachFd

Added in API level 12
int detachFd ()

返回此ParcelFileDescriptor的本地fd int并将其从此对象中分离。 您现在负责在本机代码中关闭fd。

当描述符的原始创建者期望通过 close()closeWithError(String)获得可靠信号时,您不应该分离。

Returns
int

也可以看看:

dup

Added in API level 13
ParcelFileDescriptor dup (FileDescriptor orig)

创建一个新的ParcelFileDescriptor,它是现有FileDescriptor的一个副本。 这遵循标准POSIX语义,其中新文件描述符与原始文件描述符共享状态,例如文件位置。

Parameters
orig FileDescriptor
Returns
ParcelFileDescriptor
Throws
IOException

dup

Added in API level 14
ParcelFileDescriptor dup ()

创建一个新的ParcelFileDescriptor,它是现有FileDescriptor的一个副本。 这遵循标准POSIX语义,其中新文件描述符与原始文件描述符共享状态,例如文件位置。

Returns
ParcelFileDescriptor
Throws
IOException

fromDatagramSocket

Added in API level 14
ParcelFileDescriptor fromDatagramSocket (DatagramSocket datagramSocket)

从指定的DatagramSocket创建一个新的ParcelFileDescriptor。

Parameters
datagramSocket DatagramSocket: The DatagramSocket whose FileDescriptor is used to create a new ParcelFileDescriptor.
Returns
ParcelFileDescriptor A new ParcelFileDescriptor with the FileDescriptor of the specified DatagramSocket.

fromFd

Added in API level 13
ParcelFileDescriptor fromFd (int fd)

从原始原生fd创建一个新的ParcelFileDescriptor。 新的ParcelFileDescriptor包含原始fd的dup,因此您仍然必须关闭该fd以及新的ParcelFileDescriptor。

Parameters
fd int: The native fd that the ParcelFileDescriptor should dup.
Returns
ParcelFileDescriptor Returns a new ParcelFileDescriptor holding a FileDescriptor for a dup of the given fd.
Throws
IOException

fromSocket

Added in API level 1
ParcelFileDescriptor fromSocket (Socket socket)

从指定的套接字创建一个新的ParcelFileDescriptor。 新的ParcelFileDescriptor在Socket中保留了原始FileDescriptor的dup,所以您仍然必须关闭套接字以及新的ParcelFileDescriptor。

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

getFd

Added in API level 12
int getFd ()

为此ParcelFileDescriptor返回本地fd int。 ParcelFileDescriptor仍然拥有fd,它仍然必须通过这个API关闭。

Returns
int

getFileDescriptor

Added in API level 1
FileDescriptor getFileDescriptor ()

检索与此对象关联的实际FileDescriptor。

Returns
FileDescriptor Returns the FileDescriptor associated with this object.

getStatSize

Added in API level 3
long getStatSize ()

返回代表该fd的文件的总大小,由stat()决定。 如果fd不是文件,则返回-1。

Returns
long

open

Added in API level 1
ParcelFileDescriptor open (File file, 
                int mode)

创建一个访问给定文件的新ParcelFileDescriptor。

Parameters
file File: The file to be opened.
mode int: 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
ParcelFileDescriptor a new ParcelFileDescriptor pointing to the given file.
Throws
FileNotFoundException if the given file does not exist or can not be opened with the requested mode.

也可以看看:

open

Added in API level 19
ParcelFileDescriptor open (File file, 
                int mode, 
                Handler handler, 
                ParcelFileDescriptor.OnCloseListener listener)

创建一个访问给定文件的新ParcelFileDescriptor。

Parameters
file File: The file to be opened.
mode int: 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.
handler Handler: to call listener from; must not be null.
listener ParcelFileDescriptor.OnCloseListener: to be invoked when the returned descriptor has been closed; must not be null.
Returns
ParcelFileDescriptor a new ParcelFileDescriptor pointing to the given file.
Throws
FileNotFoundException if the given file does not exist or can not be opened with the requested mode.
IOException

也可以看看:

parseMode

Added in API level 19
int parseMode (String mode)

将代表文件模式(如“rw”)的字符串转换为适合与 open(File, int)一起使用的位掩码。

Parameters
mode String: The string representation of the file mode.
Returns
int A bitmask representing the given file mode.
Throws
IllegalArgumentException if the given string does not match a known file mode.

toString

Added in API level 1
String toString ()

返回对象的字符串表示形式。 通常, toString方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。

ObjecttoString方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @ ”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:

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

Returns
String a string representation of the object.

writeToParcel

Added in API level 1
void writeToParcel (Parcel out, 
                int flags)

将此对象平铺到一个包裹中。 如果将PARCELABLE_WRITE_RETURN_VALUE设置为标志,则将副本写入宗地后文件描述符将被关闭。

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

Protected methods

finalize

Added in API level 1
void finalize ()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize方法以处置系统资源或执行其他清理。

的常规协定finalize是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize方法可以采取任何操作,包括使该对象再次可用于其他线程; 然而, finalize的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。

Objectfinalize方法Object执行特殊操作; 它只是正常返回。 Object子类可能会覆盖此定义。

Java编程语言不保证哪个线程将为任何给定对象调用finalize方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。

在针对对象调用 finalize方法之后,在Java虚拟机再次确定不再有任何途径可以通过尚未死亡的任何线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。

对于任何给定对象,Java虚拟机永远不会多次调用 finalize方法。

finalize方法引发的任何异常 finalize导致此对象的终止被暂停,但会被忽略。

Throws
Throwable

Hooray!