Oi gente… poderiam me ajudar com um probleminha…
tipo assim… tenho uma classe que imprime em arquivo…no qual seu metodo recebe um arraylist…
porém… se eu chamar o metodo duas vezes, uma com um array list, e outra com ouitro array list, nao consigo imprimir no arquivo os dois array list… acho que o método flush barra isso…só consigo imprimir um array list. Não dá problema… mas um fica eskecido…
metodo recebe arraylist em p:
try {
BufferedWriter arquivo = new BufferedWriter(new FileWriter©);
for(int i = 0;i<p.size();i++) {
sb.append(p.get(i));
}
arquivo.write(sb.toString());
//arquivo.newLine();
arquivo.flush();
Poderiam me ajudar?
Valeu
-
Não use nomes de variáveis com apenas uma letra. Quiquié “c” ou “p”? Só se o nome da variável representa um valor em uma fórmula, ou se representa um índice.
-
O uso do “flush” é desnecessário em 99% do tempo; entretanto, você SEMPRE deve fechar seus arquivos. Se você quer, além disso, continuar a escrever em um arquivo já existente, tem de usar a opção “append” que existe na abertura de arquivos.
Veja: http://java.sun.com/javase/6/docs/api/java/io/FileWriter.html
e com mais atenção, [url=http://java.sun.com/javase/6/docs/api/java/io/FileWriter.html#FileWriter%28java.lang.String,%20boolean%29FileWriter (String filename, boolean append)[/url].
Por exemplo:
PrintWriter pw = new PrintWriter (new BufferedWriter (new FileWriter ("arquivo.txt", true)));
for (int i = 0; i < p.size(); ++i) {
pw.println (p.get (i));
}
pw.close();
- Dica: em 99% das vezes é melhor usar um PrintWriter como fiz acima, porque você ganha o “println” e o “printf” para você usar. Com o BufferedWriter você só consegue o newLine() (que no seu caso acho que nem adianta muito).