鸿蒙OS ReliableFileDescriptor

ReliableFileDescriptor

java.lang.Object

|—ohos.rpc.ReliableFileDescriptor

public class ReliableFileDescriptor
extends Object

包装可以从多个线程访问的可靠 FileDescriptor。

此类提供用于创建可靠数据管道和获取包装的 FileDescriptor 或本机文件描述符的方法。

嵌套类摘要

修饰符和类型 描述
static class ReliableFileDescriptor.AutoCloseFileInputStream 表示一个文件输入流,其文件描述符在此流关闭时自动关闭。
static class ReliableFileDescriptor.AutoCloseFileOutputStream 表示一个文件输出流,其文件描述符在此流关闭时自动关闭。

构造函数摘要

构造函数 描述
ReliableFileDescriptor(FileDescriptor fd) 用于创建具有指定 FileDescriptor 的 ReliableFileDescriptor 实例的构造函数。
ReliableFileDescriptor(FileDescriptor fd, FileDescriptor commonFd) 用于创建具有指定 FileDescriptor 和用于检查文件状态的文件描述符的 ReliableFileDescriptor 实例的构造函数。

方法总结

修饰符和类型 方法 描述
void close() 关闭此 ReliableFileDescriptor 对象。
static ReliableFileDescriptor[] createPipe2() 创建两个 ReliableFileDescriptor 对象的数组。
static ReliableFileDescriptor[] createReliablePipe() 创建两个 ReliableFileDescriptor 对象的数组,每个对象都包含一个套接字文件描述符。
static ReliableFileDescriptor dupFromSocket(Socket socket) 通过复制指定套接字的文件描述符来创建 ReliableFileDescriptor。
FileDescriptor getFileDescriptor() 获取包装在此可靠文件描述符中的文件描述符。
long getFileTotalSize() 获取与此文件描述符匹配的文件的大小。
int getNativeFd() 获取包装在此 ReliableFileDescriptor 中的本机文件描述符。
static ReliableFileDescriptor takeChargeOfFileDescriptor(int fd) 通过复制现有文件描述符创建 ReliableFileDescriptor。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

构造函数详细信息

ReliableFileDescriptor

public ReliableFileDescriptor(FileDescriptor fd)

用于创建具有指定 FileDescriptor 的 ReliableFileDescriptor 实例的构造函数。

参数:

参数名称 参数描述
fd 指示要包装在 ReliableFileDescriptor 实例中的 FileDescriptor。

ReliableFileDescriptor

public ReliableFileDescriptor(FileDescriptor fd, FileDescriptor commonFd)

用于创建具有指定 FileDescriptor 和用于检查文件状态的文件描述符的 ReliableFileDescriptor 实例的构造函数。

参数:

参数名称 参数描述
fd 指示要包装在 ReliableFileDescriptor 实例中的 FileDescriptor。
commonFd 指示用于检查文件是否关闭的文件描述符。

方法详情

getFileDescriptor

public FileDescriptor getFileDescriptor()

获取包装在此 ReliableFileDescriptor 中的 FileDescriptor。

返回:

返回包装在此 ReliableFileDescriptor 中的 FileDescriptor。

getNativeFd

public int getNativeFd()

获取包装在此 ReliableFileDescriptor 中的本机文件描述符。

这个 ReliableFileDescriptor 仍然拥有文件描述符,它必须通过这个 ReliableFileDescriptor 关闭。

返回:

返回包装在此 ReliableFileDescriptor 中的本机文件描述符。 不要使用返回值来关闭文件描述符或将返回值传递给任何假定文件描述符所有权的方法。 否则,文件描述符将被反复关闭。

createPipe2

public static ReliableFileDescriptor[] createPipe2() throws OsHelperErrnoException

创建两个 ReliableFileDescriptor 对象的数组。

该数组用作数据管道。 这两个对象之一用于读取数据,另一个用于写入数据。

返回:

返回创建的数组。

Throws:

Throw名称 Throw描述
OsHelperErrnoException 如果数组创建失败,则抛出此异常。

createReliablePipe

public static ReliableFileDescriptor[] createReliablePipe() throws IOException, OsHelperErrnoException

创建两个 ReliableFileDescriptor 对象的数组,每个对象都包含一个套接字文件描述符。

该数组用作数据管道。 这两个对象之一用于读取数据,另一个用于写入数据。

返回:

返回创建的数组。

Throws:

Throw名称 Throw描述
OsHelperErrnoException 如果数组创建失败,则抛出此异常。
IOException 如果用于操作数据管道的套接字对创建失败,则抛出此异常。

takeChargeOfFileDescriptor

public static ReliableFileDescriptor takeChargeOfFileDescriptor(int fd) throws IOException, OsHelperErrnoException

通过复制现有文件描述符创建 ReliableFileDescriptor。

创建 ReliableFileDescriptor 后,您必须关闭它和现有的文件描述符。

参数:

参数名称 参数描述
fd 指示现有文件描述符。

返回:

返回创建的 ReliableFileDescriptor。

Throws:

Throw名称 Throw描述
OsHelperErrnoException 如果操作文件描述符失败,则抛出此异常。
IOException 如果 ReliableFileDescriptor 创建失败,则抛出此异常。

dupFromSocket

public static ReliableFileDescriptor dupFromSocket(Socket socket) throws IOException, OsHelperErrnoException

通过复制指定套接字的文件描述符来创建 ReliableFileDescriptor。

创建 ReliableFileDescriptor 后,您必须关闭它和套接字。

参数:

参数名称 参数描述
socket 表示指定的套接字。

返回:

返回创建的 ReliableFileDescriptor。

Throws:

Throw名称 Throw描述
OsHelperErrnoException 如果操作文件描述符失败,则抛出此异常。
IOException 如果 ReliableFileDescriptor 创建失败,则抛出此异常。

getFileTotalSize

public long getFileTotalSize()

获取与此文件描述符匹配的文件的大小。

返回:

返回匹配此文件描述符的文件大小; 如果此文件描述符与文件不匹配,则返回 -1,例如,文件描述符是通过 Socket 或 Pipe 获得的 ReliableFileDescriptor。

close

public void close()

关闭此 ReliableFileDescriptor 对象。

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《鸿蒙OS ReliableFileDescriptor》
文章链接:https://zhuji.vsping.com/313259.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。