English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender sobre Java FileInputStream e seus métodos com a ajuda de exemplos.
A classe FileInputStream do pacote java.io pode ser usada para ler dados do arquivo (em bytes).
Ela herda a classe abstrata InputStream.
Antes de aprender sobre FileInputStream, certifique-se de que você já entendeJava File(archivo).
Para criar um fluxo de entrada de arquivo,我们必须 primeiro importar o pacote java.io.FileInputStream. Após a importação do pacote, podemos usar o Java para criar um fluxo de entrada de arquivo.
1Usando o caminho do arquivo
FileInputStream input = new FileInputStream(stringPath);
Aqui, criamos um fluxo de entrada que se conectará ao caminho do arquivo especificado.
2Usando o objeto do arquivo
FileInputStream input = new FileInputStream(File fileObject);
Aqui, criamos um fluxo de entrada que se conectará ao arquivo especificado pelo objeto fileObject.
A classe FileInputStream fornece implementações para diferentes métodos da classe InputStream.
read() - Ler um byte do arquivo
read(byte[] array) - Ler bytes do arquivo e armazená-los no array especificado
read(byte[] array, int start, int length) - Ler um número de bytes igual a length do arquivo e armazenar na posição start no array especificado
Suponha que tenhamos um arquivo chamadoinput.txtO arquivo, contendo o seguinte conteúdo.
This is a line of text inside the file.
Vamos tentar usar FileInputStream para ler este arquivo.
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { FileInputStream input = new FileInputStream("input.txt"); System.out.println("Os dados do arquivo:"); //ler o primeiro byte int i = input.read(); while(i !=}} -1) { System.out.print((char)i); //ler o próximo byte do arquivo i = input.read(); } input.close(); } catch(Exception e) { e.getStackTrace(); } } }
Output Result
Dados do arquivo: This is a line of text inside the file.
No exemplo acima, criamos um fluxo de entrada de arquivo chamado input. O fluxo de entrada está associado ainput.txtligação de arquivo.
FileInputStream input = new FileInputStream("input.txt");
Para ler dados do arquivo, usamos o método read() no loop while.
Para obter o número de bytes disponíveis, podemos usar o método available(). Por exemplo,
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { //Supondo que o arquivo input.txt contenha o seguinte texto //Esta é uma linha de texto no arquivo. FileInputStream input = new FileInputStream("input.txt"); //retornar o número de bytes disponíveis System.out.println("Número de bytes disponíveis no início: "); + input.available()); //ler do arquivo3bytes input.read(); input.read(); input.read(); //retornar o número de bytes disponíveis System.out.println("Número de bytes disponíveis no final: "); + input.available()); input.close(); } catch (Exception e) { e.getStackTrace(); } } }
Output Result
Número de bytes disponíveis no início: 39 Número de bytes disponíveis no final: 36
No exemplo acima,
primeiro, usamos o método available() para verificar o número de bytes disponíveis no fluxo de entrada de arquivo.
após a leitura do arquivo de entrada3vezes3bytes.
Agora, após a leitura dos bytes, verificamos novamente o número de bytes disponíveis. Desta vez, o número de bytes disponíveis diminuiu3.
Para descartar e pular bytes específicos, você pode usar o método skip(). Por exemplo
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { //Supondo que o arquivo input.txt contenha o seguinte texto //Esta é uma linha de texto no arquivo. FileInputStream input = new FileInputStream("input.txt"); //pular5bytes input.skip(5; System.out.println("Pular fluxo de entrada: ");5bytes: "); //ler o primeiro byte int i = input.read(); while (i != -1) { System.out.print((char) i); //ler o próximo byte do arquivo i = input.read(); } // close() método input.close(); } catch (Exception e) { e.getStackTrace(); } } }
Output Result
Input stream skip5bytes: is a line of text inside the file.
In the above example, we used the skip() method to skip5bytes of data. Therefore, no text representation“This”bytes.
To close the file input stream, you can use the close() method. Once the close() method is called, we cannot use the input stream to read data.
In all the above examples, we have used the close() method to close the file input stream.
Method | Content Description |
---|---|
finalize() | Ensure that the close() method is called |
getChannel() | Return the object associated with the FileChannel and the input stream |
getFD() | Return the file descriptor associated with the input stream |
mark() | Mark the position of the data read from the input stream |
reset() | Return the control to the input stream at the marked point |