English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Fila (Queue)

Java Conjunto Map

Java Conjunto Set

Java Entrada e Saída (I)/)

Reader Java/Writer

Outros tópicos do Java

Classe Java FileInputStream

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).

Criar um FileInputStream

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.

Métodos do FileInputStream

A classe FileInputStream fornece implementações para diferentes métodos da classe InputStream.

Método read()

  • 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.

método available()

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,

  1. primeiro, usamos o método available() para verificar o número de bytes disponíveis no fluxo de entrada de arquivo.

  2. após a leitura do arquivo de entrada3vezes3bytes.

  3. 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.

método skip()

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.

close() method

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.

Other Methods of FileInputStream

MethodContent 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