Java FileDescriptor クラス

java.io.FileDescriptor クラスは、基礎となるオペレーティング システムで開いているファイルまたはソケット ハンドルを表します。これは、特定のファイル デバイスまたはソケットへの不透明な参照として機能します。このクラスは主に、Java I/O ストリームとネイティブ ファイル システム リソース間のブリッジとして使用されます。

クラス宣言

Java
   public     final     class   FileDescriptor     extends     Object   
  • ファイル記述子の主な実際的な用途は、ファイル記述子を含めるための FileInputStream または FileOutputStream を作成することです。
  • アプリケーションは独自のファイル記述子を作成しないでください。

一般的な FileDescriptor オブジェクト

  • ファイル記述子.in: 標準入力(キーボード)を表します。
  • ファイル記述子.out: 標準出力(コンソール)を表します。
  • ファイル記述子.err: 標準誤差(エラー出力)を表します。

コンストラクタ

  • ファイル記述子(): どのファイルにもソケットにも接続されていない無効なファイル記述子を作成します。

メソッド

主に以下の 2 つの方法があります。

  • void sync(): すべてのシステム バッファーを基礎となるデバイスと強制的に同期させ、データが物理的に書き込まれることを保証します。
  • java.io.File.valid(): ファイル記述子オブジェクトが有効かどうか (つまり、開いているファイルまたはソケットに接続されているかどうか) を確認します。

方法の例

1.sync()メソッド

構文:

パブリック void sync()

戻る : 空所

例外: SyncFailedException - これは、バッファとデバイスの同期が保証されていない場合にスローされる例外です。

Java
   import     java.io.*  ;   public     class   FileDescriptorValidity     {      public     static     void     main  (  String  []     args  )     throws     Exception     {      FileOutputStream     fos     =     new     FileOutputStream  (  'example.txt'  );      FileDescriptor     fd     =     fos  .  getFD  ();      System  .  out  .  println  (  'Is FileDescriptor valid? '     +     fd  .  valid  ());      fos  .  close  ();      System  .  out  .  println  (  'Is FileDescriptor valid after close? '     +     fd  .  valid  ());      }   }   

出力
Is FileDescriptor valid? true Is FileDescriptor valid after close? false  

2. valid() メソッド

構文:

パブリックブール値 valid()

戻る: FileDescriptor オブジェクトが有効な場合は true、それ以外の場合は false

Java
   import     java.io.*  ;   public     class   FileDescriptorSync     {      public     static     void     main  (  String  []     args  )     throws     Exception     {      FileOutputStream     fos     =     new     FileOutputStream  (  'syncDemo.txt'  );      FileDescriptor     fd     =     fos  .  getFD  ();      fos  .  write  (  'GeeksForGeeks FileDescriptor Example'  .  getBytes  ());      fd  .  sync  ();     // Ensures data is written to disk      System  .  out  .  println  (  'Data synchronized successfully.'  );      fos  .  close  ();      }   }   

出力
Data synchronized successfully.  

標準の FileDescriptor を使用した例

Java
   import     java.io.*  ;   public     class   StandardFileDescriptors     {      public     static     void     main  (  String  []     args  )     throws     Exception     {      FileInputStream     fis     =     new     FileInputStream  (  FileDescriptor  .  in  );      FileOutputStream     fos     =     new     FileOutputStream  (  FileDescriptor  .  out  );      FileOutputStream     fes     =     new     FileOutputStream  (  FileDescriptor  .  err  );      fos  .  write  (  'Enter something: '  .  getBytes  ());      int     data     =     fis  .  read  ();      fes  .  write  ((  'You entered: '     +     (  char  )  data     +     'n'  ).  getBytes  ());      fis  .  close  ();      fos  .  close  ();      fes  .  close  ();      }   }   

出力:

何かを入力してください: A

入力した内容: A

クイズの作成