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
comandos git para push
Exemplo: Classe FileInputStream para ler dados do arquivo.
Javaimport 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ídaConstrutores 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);forma completa de i d e
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ídaMé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 |