Module java.base
Package java.io

Class FileDescriptor

java.lang.Object
java.io.FileDescriptor

public final class FileDescriptor extends Object
文件描述符类的实例用作表示打开文件、打开套接字或其他字节源或接收器的底层机器特定结构的不透明句柄。文件描述符的主要实际用途是创建一个FileInputStreamFileOutputStream来包含它。

应用程序不应创建自己的文件描述符。

自:
1.0
  • Field Details

    • in

      public static final FileDescriptor in
      标准输入流的句柄。通常,此文件描述符不直接使用,而是通过名为System.in的输入流使用。
      参见:
    • out

      public static final FileDescriptor out
      标准输出流的句柄。通常,此文件描述符不直接使用,而是通过名为System.out的输出流使用。
      参见:
    • err

      public static final FileDescriptor err
      标准错误流的句柄。通常,此文件描述符不直接使用,而是通过名为System.err的输出流使用。
      参见:
  • Constructor Details

    • FileDescriptor

      public FileDescriptor()
      构造一个(无效的)FileDescriptor对象。稍后设置fd或句柄。
  • Method Details

    • valid

      public boolean valid()
      测试此文件描述符对象是否有效。
      返回:
      如果文件描述符对象表示有效的打开文件、套接字或其他活动I/O连接,则返回true;否则返回false
    • sync

      public void sync() throws SyncFailedException
      强制所有系统缓冲区与底层设备同步。此方法在所有修改的数据和此FileDescriptor的属性已写入相关设备后返回。特别是,如果此FileDescriptor引用物理存储介质,例如文件系统中的文件,则sync将一直等到与此FileDescriptor关联的所有内存中修改的缓冲区的副本已写入物理介质。sync旨在供需要物理存储(例如文件)处于已知状态的代码使用。例如,提供简单事务功能的类可能使用sync来确保由给定事务引起的文件的所有更改都记录在存储介质上。sync仅影响此FileDescriptor下游的缓冲区。如果应用程序正在执行任何内存缓冲(例如通过BufferedOutputStream对象),则必须将这些缓冲区刷新到FileDescriptor(例如通过调用OutputStream.flush)中,然后数据才会受到sync的影响。
      抛出:
      SyncFailedException - 当无法刷新缓冲区时抛出,或因为系统无法保证所有缓冲区已与物理介质同步。
      自:
      1.1