Gravação em Arquivo

3 respostas
rogeriofabbri

Caros amigos, estou iniciando em JAVA e estou com uma dúvida. Tenho um código que lê um arquivo, armazena a linha em uma variável, incrementa esta variável e na hora de gravar no arquivo apresenta erro. Tipo…eu inicio o arquivo com o número 100, rodo e ele grava a letra “e” no arquivo ao invé de 101. Segue abaixo o código:

import java.io.*;
class Contador {

public static void main ( String[] args ) throws IOException {

	BufferedReader in = new BufferedReader(new FileReader("arquivo.txt"));
	String line = in.readLine();

	int num =Integer.parseInt(line); 
    num = num +1;
	BufferedWriter out = new BufferedWriter (new FileWriter("arquivo.txt",false)); 
	out.write(num);

in.close();
out.close();


}

}

Grato pela ajuda.

3 Respostas

crpablo

Dá uma olhada nesse cod. aki...

Esse funciona.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;


public class UtilsArquivo {

	/**
	 * Salva o conteúdo de uma variável em um arquivo
	 * 
	 * @param arquivo
	 * @param conteudo
	 * @param adicionar
	 *            se true adicionar no final do arquivo
	 * @throws IOException
	 */
	public static void salvar(String arquivo, String conteudo, boolean adicionar)
			throws IOException {

		FileWriter fw = new FileWriter(arquivo, adicionar);

		fw.write(conteudo);
		fw.close();
	}

	/**
	 * Carrega o conteúdo de um arquivo em uma String, se o aquivo não existir,
	 * retornará null.
	 * 
	 * @param arquivo
	 * @return conteúdo
	 * @throws Exception
	 */
	public static String carregar(String arquivo) throws FileNotFoundException,
			IOException {

		File file = new File(arquivo);

		if (!file.exists()) {
			return null;
		}

		BufferedReader br = new BufferedReader(new FileReader(arquivo));
		StringBuffer bufSaida = new StringBuffer();

		String linha;
		while ((linha = br.readLine()) != null) {
			bufSaida.append(linha + "\n");
		}
		br.close();
		return bufSaida.toString();
	}
	/**
	 * Exemplo de Utilização
	 */
	public static void main(String[] args) {
		try {
			String texto = "Gregui Shigunov \n [email removido]";
			
			UtilsArquivo.salvar("arquivo.txt", texto, false);
			
			texto = UtilsArquivo.carregar("arquivo.txt");
			
			System.out.println(texto);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}

Abraço

S

Isso aqui vai te responder: BufferedWriter.write(int)

rogeriofabbri

Obrigado gente, apenas inseri uma linha, seguindo o link Schuenemann, que pelo que entendi, o BufferedWriter não grava int, e funcionou perfeitamente. Agradeço a atenção de todos.

import java.io.*;
class Contador {

public static void main ( String[] args ) throws IOException {

	BufferedReader in = new BufferedReader(new FileReader("arquivo.txt"));
	String line = in.readLine();
	in.close();

	int num =Integer.parseInt(line); 
    num = num +1;
	BufferedWriter out = new BufferedWriter (new FileWriter("arquivo.txt",false)); 
	[color=red]String nums = Integer.toString(num);[/color]
	out.write(nums);


out.close();


}

}

Criado 31 de janeiro de 2008
Ultima resposta 31 de jan. de 2008
Respostas 3
Participantes 3