Escribir sin sobreescribir Java

LR

Buenas.

Tengo la siguiente duda..

Es posible usar un PrintWriter y que este no sobreescriba el contenido del archivo?

Hasta ahora, cuando he querido hacer eso, creaba el objeto asi:


  PrintWriter output = new PrintWriter(new FileWriter(salida, true));

Siendo salida un simple string que le paso por parametros.

He estado leyendo algo, y no aconsejan hacerlo asi, pero no encuentro otra manera de usar el PrintWriter sin usar ademas un FileWriter.

Alguna idea?

Thx

tOWERR

En java los ficheros de tipo texto, creo que no se puede sobreescribir. Solamente se puede escribir y cuando vuelves a escribir se machaca lo que tenia antes dentro.
Los unicos ficheros que se podia sobreescribir era los ficheros binarios, accediendo con el puntero al final del fichero y escribiendo.

LR

Poder se puede en los de texto, pero ya digo, usando el FileWriter que en el constructor, tal y como lo tengo yo ahi declarado, lo que hace es exactamente lo que dices, va al final del archivo y escribe ahi.

El problema es que tenemos que usar el PrintWriter y no encuentro otra manera de hacer lo que busco que no sea como lo tengo ahi puesto :S

pdj

Uno de los constructores es PrintWriter(OutputStream out), entonces supongo que puedes hacer un:

FileOutputStream salida = FileOutputStream(new File("fichero.txt"), boolean append);
PrintWriter writer = PrintWriter(salida);
 

El append lo pones a true y eso deberia funcionar :O

Usuarios habituales

  • pdj
  • LR
  • tOWERR