Java: Class Formatter ( a classe Formatter ) - Escrevendo em arquivos

Já vimos como obter informações sobre arquivos e diretórios, através da classe File, agora vamos realmente criar um arquivo que nos permita manipular informações de texto na forma sequencial.


- Criando um arquivo de texto

Para criar uma saída formatada, vamos usar um objeto da classe Formatter.
Além de abrir o arquivo para escrita, vamos testar antes para ver se é possível escrever nele, se temos permissões e se o arquivo existe.

Isso é importante para deixar nossas aplicações bem robustas e a prova de erros.
Não vá, simplesmente, abrindo os arquivos. Antes, teste se eles existem, se o usuário tem permissão de abrir, para checar se é possível mesmo escrever nele.


CriandoArquivoTexto.java
public class CriandoArquivoTexto
{
    public static void main(String[] args)
    {
        EscreverMetodos teste = new EscreverMetodos();
        teste.abrir();
        teste.escrever();
        teste.fechar();
     
    }

}


EscreverMetodos.java

import java.util.Formatter;
import java.util.NoSuchElementException;
import java.util.FormatterClosedException;
import java.lang.SecurityException;
import java.io.FileNotFoundException;


public class EscreverMetodos
{
    private Formatter arquivo;

        public void abrir()
        {
            try
            {
                arquivo = new Formatter("ProgramacaoProgressiva.txt");
            }
            catch( SecurityException semPermissao)
            {
                System.err.println(" Sem permissao para escrever no arquivo ");
                System.exit(1); //exit(0) é sucesso, outro número significa que terminou com problemas
            }
            catch( FileNotFoundException arquivoInexistente )
            {
                System.err.println(" Arquivo inexistente ou arquivo não pode ser criado");
                System.exit(1);
            }
        }
         
        public void escrever()
        {
            try
            {
                arquivo.format("Escrita no arquivo realizada com sucesso");
            }
            catch(FormatterClosedException formatoDesconhecido)
            {
                        System.err.println("Erro ao escrever");
                        return;
            }
            catch(NoSuchElementException excecaoElemento)
            {
                System.err.println("Entrada invalida. Por exemplo, era pra ser uma string, mas foi um inteiro");
            }
         
        }
     
       public void fechar()
       {
           arquivo.close();
       }
}



Após compilar e rodar, verá que foi criado um arquivo chamado ProgramacaoProgressiva.txt com a string "Escrita no arquivo realizada com sucesso".

Usei a saída formatada 'arquivo.format()' para você saber que pode passar informações formatadas exatamente da mesma maneira que você fazia com printf.
Note que é sempre importante fecharmos um arquivo que não estamos mais usando, liberando recursos da máquina.

Nenhum comentário: