FileDescriptor

Posted 茅坤宝骏氹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FileDescriptor相关的知识,希望对你有一定的参考价值。

一、FileDescriptor

 

文件描述符类的实例用作与基础机器有关的某种结构的不透明句柄,该结构表示开放文件开放套接字或者字节的另一个源接收者。文件描述符的主要实际用途是创建一个包含该结构的 FileInputStreamFileOutputStream。 

 

二、

 

字段摘要
static FileDescriptor err
          标准错误流的句柄。
static FileDescriptor in
          标准输入流的句柄。
static FileDescriptor out
          标准输出流的句柄。

 

try {
    // 打开文件,获取文件描述符
    String fileName = "out.txt";
    FileOutputStream os = new FileOutputStream(fileName);
    FileDescriptor  fd = os.getFD();
    System.out.println("file name: " + fileName);
 
    //写数据入文件
    byte[] data = "你好".getBytes();
    os.write(data);
    System.out.println("data: " + data);
 
    // 刷新缓冲区
    // 数据可能没有写入到磁盘
    System.out.println("刷新");
    os.flush();
 
    // 阻塞直到数据缓冲区的数据全部写入磁盘
    // 该方法返回后,数据已经写入到磁盘
    System.out.println("阻塞直到数据缓冲区的数据全部写入磁盘");
    fd.sync();
 
    // 关闭流
    os.close();
    System.out.println("关闭流: " + os);
        
} catch (IOException e) {
    e.printStackTrace();
 }

 

以上是关于FileDescriptor的主要内容,如果未能解决你的问题,请参考以下文章

Android:MediaPlayer.setDataSource(FileDescriptor fd) vs MediaPlayer.setDataSource(FileDescriptor fd,

FileDescriptor

JDK 源码阅读 : FileDescriptor

FileDescriptor

iOS NetworkExtension let tunFd = self?.packetFlow.value(forKeyPath: “socket.fileDescriptor“) as! Int

iOS NetworkExtension let tunFd = self?.packetFlow.value(forKeyPath: “socket.fileDescriptor“) as! Int