Abrir e acrescetar a todas as linnhas txt

13 respostas
A

Eu não sei ocmo faço para abrir um arquivo txt e para cada linha dele acrescentar um string dada pelo usuário alguém pode dar um help ???

13 Respostas

rodrigo_gomes

[gambiarra = on]

vc pode ler o aquivo linha por linha com o
http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html#readLine()

acrescentar a string que você quer em cada linha, armazenar isso em algum lugar, e depois gravar de volta no arquivo

[/gambiarra]

deve ter um jeito melhor, mas o unico que vem a mente agora é esse :smiley:

A

Legal eu consegui abrir e jogar numa string…

Como posso fazer para cada linha nessa string eu acrestar no começo antes de qquer texto um string qquer ???

rodrigo_gomes

essa string é igual pra todas as linhas do arquivo?

A

Graças a deus sim …

rodrigo_gomes

vc não pode antes de jogar os dados que leu do arquivo numa string, iniciar essa string com o que vc quer inserir no começo (a string qualquer)?

A

Então...naum...pq acontece o seguinte....

O arquivo é uma lista de sites deste tipo...

britneyspears.ac
cutegirlies.dr.ag
dreaming.dr.ag
freethumbpics.dr.ag
thongsong.dr.ag

E eu fiz o seguinte para ler...
File arq_entrada = new File(entrada); // abre arquivo dados.txt
    String s="";
    if( arq_entrada.exists()){  // se o arquivo existe
      int tam_arq = (int) arq_entrada.length();
      int lidos = 0;
      
      /* transforma o arquivo numa InputStream, para poder le-lo */
      
      FileInputStream in = new FileInputStream(arq_entrada);
      
      /* o metodo read da classe FileInputStream le um certo numero de bytes 
         do arquivo e os devolve em um vetor de bytes */ 

      byte [] dados = new byte [tam_arq];
      lidos = in.read(dados, lidos, tam_arq);
      s = new String(dados,0);
      
      System.out.println(s);

E não tem como fazer eu acho....se você souber como...por favor..da uma ajuda..

E a saida tme que ser algo como

0.0.0.0 britneyspears.ac
0.0.0.0 cutegirlies.dr.ag
0.0.0.0 dreaming.dr.ag
0.0.0.0 freethumbpics.dr.ag
0.0.0.0 thongsong.dr.ag

rodrigo_gomes

da pra vc fazer algo mais ou menos assim

FileReader reader = new FileReader("arquivoDeEntrada");
BufferedReader leitor = new BufferedReader(reader);

String linha = null;
String stringQualquerDoUsuario = "0.0.0.0";
List listaDeString = new ArrayList();

while((linha = leitor.readLine())) {

    listaDeString.add(stringQualquerDoUsuario+" "+linha);
}

leitor.close();
reader.close();

aí vc tem um List de strings com os dados do jeito que você quer…depois é só gravar no arquivo

Referencia
http://www.guj.com.br/java.tutorial.artigo.13.1.guj

[]´s

A

para gravar posso fazer o seguinte ???

FileWriter writer = new FileWriter(new File("saida.txt"));
	PrintWriter saida = new PrintWriter(writer);

 	saida.print(listaDeString);
 	saida.close();
	writer.close();
farribeiro

Será que o prevayler não resolve a questão?

A

Tem como dar um exemplo... o cod. esta assim... mas naum funciona...

public void leadd() throws Exception{
  	FileReader reader = new FileReader("C:\\Temp\\blacklist.txt");
 	BufferedReader leitor = new BufferedReader(reader);
	FileWriter writer = new FileWriter(new File("saida.txt"));
	PrintWriter saida = new PrintWriter(writer);
 	int j=0;
 	String linha = null;
 	String stringQualquerDoUsuario = "0.0.0.0";
 	List listaDeString = new ArrayList();
 
 	while((linha == leitor.readLine())) {
      listaDeString.add(stringQualquerDoUsuario+" "+linha);
      j++;
 	}
	for (int i = 0; i < j; i++) {
		saida.println(listaDeString.get(i));
	}
 
 	leitor.close();
 	reader.close();
 	saida.close();
	writer.close();
}

Valew

cv1

Que confusao! :?

Tenta separar a leitura da escrita:

public List readBlacklist() throws IOException { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(BLACKLIST_FILENAME)); List ret = new ArrayList(); String line = null; while(line = reader.readLine()) ret.add(line); return ret; } finally { if(reader!=null) reader.close(); } }

public void writeWhatever(List blacklist) throws IOException { PrintWriter out = null; try { out = new PrintWriter(new FileWriter(WHATEVER_FILENAME); for(Iterator i = blacklist.iterator(); i.hasNext();) { out.println(i.next()); } } finally { if(out!=null) out.close(); } }

A

Cara valew mas ta dando erro aqui…

while(line = reader.readLine())
Tipo incompativeis… ja tentei usar o == e não adiantou

A

Consegui resolver…

while(reader.ready()){
	     	line = reader.readLine();
	     	ret.add("0.0.0.0 "+line);
	     }

Valew

Criado 18 de junho de 2005
Ultima resposta 20 de jun. de 2005
Respostas 13
Participantes 4