Neste tutorial, aprenderemos sobre a classe Java PrintStream e seus métodos print () e printf () com a ajuda de exemplos.
A PrintStream
classe do java.io
pacote 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 PrintStream
converte 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 PrintStream
classe 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 PrintStream
classe 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.PrintStream
primeiro 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 PrintStream
dados 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 Charset
classe para especificar a codificação de caracteres. Para saber mais, visite Java Charset (documentação oficial do Java).
Métodos de PrintStream
A PrintStream
classe 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ídaprintln()
- 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 PrintStream
classe.
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ãoout
é uma variável de classe doPrintStream
tipo declarado emSystem
classe
Agora, como out
é do PrintStream
tipo, podemos usá-lo para chamar todos os métodos da PrintStream
classe.
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).