logo

Classe Java FileDescriptor

A classe java.io.FileDescriptor representa um arquivo aberto ou identificador de soquete no sistema operacional subjacente. Ele atua como uma referência opaca a um dispositivo de arquivo ou soquete específico. Esta classe é usada principalmente como uma ponte entre os fluxos de E/S Java e os recursos nativos do sistema de arquivos.

Alisa Manyonok

Declaração de Classe

Java
public final class FileDescriptor extends Object 
  • O principal uso prático de um descritor de arquivo é criar um FileInputStream ou FileOutputStream para contê-lo.
  • Os aplicativos não devem criar seus próprios descritores de arquivo.

Objetos FileDescriptor comuns

  • ArquivoDescriptor.in: Representa a entrada padrão (teclado)
  • ArquivoDescriptor.out: Representa a saída padrão (console)
  • ArquivoDescriptor.err: Representa o erro padrão (saída de erro)

Construtor

  • Descritor de arquivo(): Cria um descritor de arquivo inválido que não está conectado a nenhum arquivo ou soquete.

Métodos

Existem dois métodos principais, conforme mencionado abaixo:

  • sincronização nula(): Força todos os buffers do sistema a sincronizarem com o dispositivo subjacente, garantindo que os dados sejam gravados fisicamente.
  • java.io.File.valid(): Verifica se o objeto descritor de arquivo é válido (ou seja, conectado a um arquivo aberto ou soquete).

Exemplo de método

1. Método sincronizado()

Sintaxe:



sincronização de vazio público()

Retornar : vazio

Exceção: SyncFailedException - Esta exceção é lançada se não houver garantia de sincronização de buffers com o dispositivo.

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());  } } 

Saída
Is FileDescriptor valid? true Is FileDescriptor valid after close? false 

2. Método válido()

Sintaxe:

dicionário de classificação python

público booleano válido()

Retornar: verdadeiro se o objeto FileDescriptor for válido, caso contrário, falso

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();  } } 

Saída
Data synchronized successfully. 

Exemplo com FileDescriptors padrão

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();  } } 

Saída:

Digite algo: A

Você digitou: A

Criar questionário