Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Herculano

[Resolvido] Adicionar string em um arquivo.txt sem alterar seu co

Recommended Posts

Galera to precisando adicionar um quantidade de strings no final do arquivo.

Ex:

--Arquivo antes--

Teste 12

--------------------

 

--Arquivo dps de adicionar string--

Teste 12

Teste 13

----------------------------------------

 

Segue abaixo o algoritmo q eu fiz ele amazena no final do arquivo porém na mesma linha ai fica assim :

 

Teste12 Teste13

Se alguém tiver alguma idéa para modificar esse algo eu agradeço.

 

 

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 {

	public static void salvar(String arquivo, String conteudo, boolean adicionar)
	throws IOException {

		FileWriter fw = new FileWriter(arquivo, adicionar);

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

	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();
	}

	public static void main(String[] args) {
		try {
			String texto = "Teste 12 \n";

			UtilsArquivo.salvar("arquivo.txt", texto, false);
			
			String texto2 = "Teste 13";
			
			UtilsArquivo.salvar("arquivo.txt", texto2, true);

			texto = UtilsArquivo.carregar("arquivo.txt");
			
			texto2 = UtilsArquivo.carregar("arquivo.txt");

			System.out.println(texto);

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

 

 

Valew galera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Refiz usando PrintWriter que possui métodos de formatação.

Para a leitura retirei o método readline pois ele não adiciona \n na String. No lugar usei o read.

Qualquer dúvida é só perguntar.

 

import java.io.*;

/**
 *
 * @author kandrade
 */
public class UtilsArquivo {

	public static void salvar(String arquivo, String conteudo, boolean adicionar)
	throws IOException {
		FileWriter fw = new FileWriter(arquivo, adicionar);
		PrintWriter pw = new PrintWriter(fw);
		pw.println(conteudo);
		pw.flush();
		pw.close();
	}

	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();

		int c;
		while( (c = br.read()) > 1 ){
			bufSaida.append((char)c);
		}
		br.close();
		return bufSaida.toString();
	}

	public static void main(String[] args) {
		try {
			String texto = "Teste 12";

			UtilsArquivo.salvar("arquivo.txt", texto, false);

			String texto2 = "Teste 13";

			UtilsArquivo.salvar("arquivo.txt", texto2, true);

			texto = UtilsArquivo.carregar("arquivo.txt");

			texto2 = UtilsArquivo.carregar("arquivo.txt");

			System.out.println(texto);

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza Kandrade funiciono de boa aki, agora eu queria saber como eu faço para colocar mais de uma string em uma linha tipo assim.

 

 

Teste12 algo mais

Teste13 algo mais3

Teste14 algo mais4

 

 

Valew ajuda bastante !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do jeito que ficou voce precisa controlar isso na escrita e não na leitura.

A leitura vai ser precisamente da maneira que está escrito no arquivo.

Vou te passar uma idéia de como pode ficar:

 

No método de escrita voce pode adicionar um parametro que dirá se o conteudo deve ser escrito em uma nova linha ou não.

Eu faria uma sobrecarga.

 

Se esse parametro booleano for passado voce pode decidir entre usar o método println ou o print que não adicionar o caracter de alimentação de linha.

 

Se tiver dificuldades para implementar é só falar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu fiz não sei s pode te ajudar mas eu fiz da seguinte forma:

 

Coloquei esta linha no meu código

 

String br= System.getProperty("line.separator");

 

ele funciona como quebra de linha

 

então quando coloco o texto a ser salvo fica da seguinte forma:

 

br+"texto "

toda vez que o java escrever um texto, ele vai pular uma linha primeiro e depois escreve o texto

 

qualquer dúvida manda um e-mail gwoura@gmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.