Classe Java FileInputStream
A classe FileInputStream em Java é usada para ler dados de um arquivo na forma de bytes. É ideal para ler dados binários, como imagens ou arquivos de áudio. Para ler arquivos de texto é melhor usar Leitor de arquivos.
- Acesso direto: Ele lê diretamente o conteúdo do arquivo do disco sem buffer
- Independente de plataforma: Pode funcionar em qualquer sistema operacional
Declaração
A classe FileInputStream estende o Fluxo de entrada classe, o que significa que herda métodos para ler dados brutos de bytes de arquivos.
classe pública FileInputStream estende InputStream
Exemplo: Classe FileInputStream para ler dados do arquivo.
Java import java.io.* ; public class Geeks { public static void main ( String [] args ){ // Use try-with-resources to automatically close the // stream try ( FileInputStream fi = new FileInputStream ( 'file1.txt' )) { // Display file channel information System . out . println ( 'Channel: ' + fi . getChannel ()); // Display file descriptor System . out . println ( 'File Descriptor: ' + fi . getFD ()); // Show available bytes in the stream System . out . println ( 'Number of remaining bytes: ' + fi . available ()); // Skip first few bytes fi . skip ( 4 ); System . out . println ( 'File Contents:' ); // Read and print file content int ch ; while (( ch = fi . read ()) != - 1 ) { System . out . print (( char ) ch ); } } catch ( FileNotFoundException e ) { System . out . println ( 'File not found: Ensure 'file1.txt' exists in the working directory.' ); } catch ( IOException e ) { System . out . println ( 'An error occurred while reading the file: ' + e . getMessage ()); } } }
Saída:
Saída Construtores de Classe FileInputStream
1. FileInputStream (nome da string)
Cria um fluxo de arquivo de entrada para ler um arquivo com o nome especificado.
FileInputStream fi = new FileInputStream('example.txt');
2. FileInputStream (arquivo de arquivo)
Cria um fluxo de arquivo de entrada para leitura do objeto File especificado.
Arquivo f = novo Arquivo('exemplo.txt');
FileInputStream fi = new FileInputStream(f);
3. FileInputStream (FileDescriptor fdobj)
Cria um fluxo de arquivo de entrada para leitura do descritor de arquivo especificado.
FileDescriptor fd = FileDescriptor.in;
FileInputStream fi = new FileInputStream(fd);
Crie um arquivo chamado file.txt no diretório do seu projeto com o seguinte conteúdo:
Javaeste é meu primeiro código
este é meu segundo código
import java.io.* ; public class Geeks { public static void main ( String [] args ) { // Use try-with-resources to automatically close the stream try ( FileInputStream fi = new FileInputStream ( 'file1.txt' )) { // Display file channel information System . out . println ( 'Channel: ' + fi . getChannel ()); // Display file descriptor System . out . println ( 'File Descriptor: ' + fi . getFD ()); // Illustrating available method System . out . println ( 'Number of remaining bytes: ' + fi . available ()); // Illustrating skip() method fi . skip ( 4 ); System . out . println ( 'File Contents:' ); // Reading characters from FileInputStream int ch ; while (( ch = fi . read ()) != - 1 ) { System . out . print (( char ) ch ); } } catch ( FileNotFoundException e ) { System . out . println ( 'File not found: Ensure 'file1.txt' exists in the working directory.' ); } catch ( IOException e ) { System . out . println ( 'An error occurred while reading the file: ' + e . getMessage ()); } } }
Saída:
Saída Métodos de Java Classe FileInputStream
| Métodos | Ação realizada |
|---|---|
| disponível() | Retorna uma estimativa do número de bytes restantes que podem ser lidos (ou ignorados) deste fluxo de entrada. |
| fechar() | Fecha esse fluxo de entrada de arquivo e libera quaisquer recursos do sistema associados ao fluxo. |
| finalizar() | Garante que o método close deste fluxo de entrada de arquivo seja chamado quando não houver mais referências a ele. |
| getCanal() | Retorna o objeto FileChannel exclusivo associado a esse fluxo de entrada de arquivo. |
| getFD() | Retorna o objeto FileDescriptor que representa a conexão com o arquivo real no sistema de arquivos que está sendo usado por este FileInputStream. |
| ler() | Lê um byte de dados deste fluxo de entrada |
| ler(byte[] b) | Lê até b.length bytes de dados desse fluxo de entrada em uma matriz de bytes. |
| leitura(byte[] b int off int len) | Lê até len bytes de dados deste fluxo de entrada em uma matriz de bytes. |
| pular() | Ignora e descarta n bytes de dados do fluxo de entrada |