Java PrintStream (com exemplos)

Neste tutorial, aprenderemos sobre a classe Java PrintStream e seus métodos print () e printf () com a ajuda de exemplos.

A PrintStreamclasse do java.iopacote pode ser usada para gravar dados de saída em um formato comumente legível (texto) em vez de bytes.

Ele estende a classe abstrata OutputStream.

Trabalho de PrintStream

Ao contrário de outros fluxos de saída, o PrintStreamconverte os dados primitivos (inteiro, caractere) no formato de texto em vez de bytes. Em seguida, ele grava esses dados formatados no fluxo de saída.

E também, a PrintStreamclasse não lança nenhuma exceção de entrada / saída. Em vez disso, precisamos usar o checkError()método para encontrar qualquer erro nele.

Observação : a PrintStreamclasse também possui um recurso de descarga automática. Isso significa que força o fluxo de saída a gravar todos os dados no destino sob uma das seguintes condições:

  • se o caractere de nova linha for escrito no fluxo de impressão
  • se o println()método for invocado
  • se uma matriz de bytes for escrita no fluxo de impressão

Crie um PrintStream

Para criar um PrintStream, devemos java.io.PrintStreamprimeiro importar o pacote. Depois de importar o pacote, aqui está como podemos criar o fluxo de impressão.

1. Usando outros fluxos de saída

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush); 

Aqui,

  • criamos um fluxo de impressão que gravará dados formatados no arquivo representado por FileOutputStream
  • o autoFlush é um parâmetro booleano opcional que especifica se deve ser realizada a descarga automática ou não

2. Usando o nome do arquivo

  // Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush); 

Aqui,

  • criamos um fluxo de impressão que gravará dados formatados no arquivo especificado
  • autoFlush é um parâmetro booleano opcional que especifica se deve ser executado autoflush ou não

Nota : Em ambos os casos, os PrintStreamdados gravam no arquivo usando alguma codificação de caracteres padrão. No entanto, também podemos especificar a codificação de caracteres ( UTF8 ou UTF16 ).

 // Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs); 

Aqui, usamos a Charsetclasse para especificar a codificação de caracteres. Para saber mais, visite Java Charset (documentação oficial do Java).

Métodos de PrintStream

A PrintStreamclasse fornece vários métodos que nos permitem imprimir dados na saída.

Método print ()

  • print() - imprime os dados especificados no fluxo de saída
  • println() - imprime os dados no fluxo de saída junto com um novo caractere de linha no final

Exemplo: método print () com classe System

 class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) ) 

Resultado

 Olá Mundo. 

No exemplo acima, não criamos um fluxo de impressão. No entanto, podemos usar o print()método da PrintStreamclasse.

Você deve estar se perguntando como isso é possível. Bem, deixe-me explicar o que está acontecendo aqui.

Observe a linha,

 System.out.print(data); 

Aqui,

  • System é uma classe final responsável por realizar a operação de entrada / saída padrão
  • outé uma variável de classe do PrintStreamtipo declarado em Systemclasse

Agora, como outé do PrintStreamtipo, podemos usá-lo para chamar todos os métodos da PrintStreamclasse.

Exemplo: método print () com classe PrintStream

 import java.io.PrintStream; class Main ( public static void main(String() args) ( String data = "This is a text inside the file."; try ( PrintStream output = new PrintStream("output.txt"); output.print(data); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

No exemplo acima, criamos um fluxo de impressão denominado output. O fluxo de impressão está vinculado ao arquivo output.txt .

 PrintStream output = new PrintStream("output.txt"); 

Para imprimir dados no arquivo, usamos o print()método.

Aqui, quando executamos o programa, o arquivo output.txt é preenchido com o seguinte conteúdo.

 This is a text inside the file. 

Método printf ()

O printf()método pode ser usado para imprimir a string formatada. Inclui 2 parâmetros: string formatada e argumentos. Por exemplo,

 printf("I am %d years old", 25); 

Aqui,

  • Tenho% d anos é uma string formatada
  • % d são dados inteiros na string formatada
  • 25 é um argumento

A string formatada inclui texto e dados. E, os argumentos substituem os dados dentro da string formatada.

Portanto, o % d é substituído por 25 .

Exemplo: método printf () usando PrintStream

 import java.io.PrintStream; class Main ( public static void main(String() args) ( try ( PrintStream output = new PrintStream("output.txt"); int age = 25; output.printf("I am %d years old.", age); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

No exemplo acima, criamos um fluxo de impressão denominado output. O fluxo de impressão está vinculado ao arquivo output.txt .

 PrintStream output = new PrintStream("output.txt"); 

Para imprimir o texto formatado no arquivo, usamos o printf()método.

Aqui, quando executamos o programa, o arquivo output.txt é preenchido com o seguinte conteúdo.

 I am 25 years old. 

Outros métodos de PrintStream

Métodos Descrições
close() fecha o fluxo de impressão
checkError() verifica se há um erro no fluxo e retorna um resultado booleano
append() anexa os dados especificados ao fluxo

Para saber mais, visite Java PrintStream (documentação oficial do Java).

Artigos interessantes...