Java Arquivo texto

0 respostas
L

Galera, olha ai uma dica para quem nunca trabalhou com arquivos em java.
Esse programinha simples, faz um arquivo log, bons estudos:

/**
 * 
 */
package src;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Essa classe cria um arquivo ou adiciona a mensagem no mesmo
 * Só pricisa ser chamado o método adicionar logo.
 * @author pacto4
 * @author Luiz Pedro [email removido]
 * 
 */
public class LogPDF {

	final static String ARQUIVO_LOG = "src/log/log.txt";

	final static String ERRO[] = { " *INTERESSADO NÃO ENCONTRADO!",
			" *ASSUNTO NÃO ENCONTRADO!", " *SOLICITA NÃO ENCONTRADO!",
			" *PROCESSO  NÃO ESTÁ REFERENCIANDO INTERESSADO!",
			" *(CNPJ) NÃO ENCONTRADO!" };

	/**
	 * @param arquivo, o caminho e nome do arquivo
	 * @param str a mensagem que deseja botar no log
	 */
	public static void adicionarLog(String arquivo, String str) {
		int linha = 1;
		Date date = new Date();
		// para gravação de texto...
		try {

			// para adicionar, o construtor do FileWriter() tem que ser diferente
			// 'FileWriter(arquivo,true)' e não 'FileWriter(arquivo,false)'
			FileWriter fwj = new FileWriter(arquivo, true);
			BufferedWriter bwj = new BufferedWriter(fwj);

			// para leitura do arquivo
			FileReader frj = new FileReader(arquivo);
			BufferedReader brj = new BufferedReader(frj);

			// analizando quantas linhas já existe no log
			@SuppressWarnings("unused")
			String linhaAtual = null;
			while ((linhaAtual = brj.readLine()) != null) {
				linha++;
			}

			// escrevendo no arquivo
			bwj.write("[" + linha + "]..: [" + getDataString(date) + "#"
					+ getHoraString(date) + "] " + str);
			bwj.write("\n");

			// fechando os objetos de leitura e escrita
			brj.close();
			bwj.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * @param atual
	 * @return data para o Formato String dd/mm/aaaa
	 */
	public static String getDataString(Date atual) {
		DateFormat df = DateFormat.getDateInstance();
		String s = df.format(atual);
		return " " + s;
	}

	/**
	 * @param atual
	 * @return hora para o Formato String HH:mm:ss
	 * @throws FileNotFoundException
	 */
	public static String getHoraString(Date data) {
		SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
		return formatter.format(data);
	}

}
Criado 1 de agosto de 2007
Respostas 0
Participantes 1