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 ???
Abrir e acrescetar a todas as linnhas txt
13 Respostas
[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 
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 ???
essa string é igual pra todas as linhas do arquivo?
Graças a deus sim …
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)?
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
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
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
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();
Será que o prevayler não resolve a questão?
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
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();
}
}
Cara valew mas ta dando erro aqui…
while(line = reader.readLine())
Tipo incompativeis… ja tentei usar o == e não adiantou
Consegui resolver…
while(reader.ready()){
line = reader.readLine();
ret.add("0.0.0.0 "+line);
}
Valew