Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 21-feb-2007, 09:19   #1 (permalink)
Luis10 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Mensajes: 103
"text/plain" y escribir en fichero texto

Buenas!

Intento escribir en un fichero texto con text/plain mediante un StringBuffer, y lo que quiero que m escriba lo hace correctamente, el problema es q siempre m escribe en el fichero de texto caracteres de salto de linea o retorno de carro ("rectangulitos blancos") y a continuacion mi texto correctamente, no se porq sera si por el editor, o porq debo resetear el StringBuffer...

Gracias y un saludo!
Luis10 está desconectado   Responder Citando
Antiguo 21-feb-2007, 12:26   #2 (permalink)
chuidiang tiene algunos puntos positivos de karma
 
Avatar de chuidiang
 
Fecha de Ingreso: octubre-2004
Mensajes: 751
Re: "text/plain" y escribir en fichero texto

Hola:

En windows un retorno de carro son dos caracteres, un \r seguido de un \n
En unix un retorno de carro solo es un \n

Java, como viene de sun, que son los de solaris, que es unix, por defecto pone retornos de carro como \n. Eso en windows se ve como un cuadrito y todas las lineas seguidas (les falta en \r delante).

Una System.getProperty("line.separator") para obtener un String con \r\n o solo \n según en el sistema operativo que estes y usa eso para escribir los fines de linea en el fichero de texto.

Se bueno.
chuidiang está desconectado   Responder Citando
Antiguo 21-feb-2007, 12:30   #3 (permalink)
Luis10 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Mensajes: 103
Re: "text/plain" y escribir en fichero texto

Muchas gracias!!

Pero mi problema es q m salen los saltos de linea antes de mi texto sin haberlos yo metido, me gustaria saber como eliminarlos. Un saludo!
Luis10 está desconectado   Responder Citando
Antiguo 21-feb-2007, 13:10   #4 (permalink)
chuidiang tiene algunos puntos positivos de karma
 
Avatar de chuidiang
 
Fecha de Ingreso: octubre-2004
Mensajes: 751
Re: "text/plain" y escribir en fichero texto

Hola de nuevo:

¿Cómo escribes el StringBuffer en el fichero?. Si usas algo como writeObject() o abres un fichero a traves de un ObjectOutputStream o similar, java mete guarrería propia antes de escribir el objeto, que podrían ser los cuadraditos. Usa mejor FileWriter y un write(String).

Se bueno.
chuidiang está desconectado   Responder Citando
Antiguo 21-feb-2007, 22:31   #5 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.570
Re: "text/plain" y escribir en fichero texto

Cita:
Java, como viene de sun, que son los de solaris, que es unix, por defecto pone retornos de carro como \n. Eso en windows se ve como un cuadrito y todas las lineas seguidas (les falta en \r delante).
Por lo que yo se, Java por defecto utiliza la codificación del S.O. en el que se esté ejecutando. Yo al menos no he tenido que poner nunca manualmente ningún \r en Windows.

En cuanto al problema en si, puede que el "buffer" donde escribes tenga algo, a mi me ha pasado con los ByteArrayOutputStream, por ejemplo, asi que si puedes hazle un reset antes de usarlo.

S!
GreenEyed está desconectado   Responder Citando
Antiguo 22-feb-2007, 02:21   #6 (permalink)
Luis10 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Mensajes: 103
Re: "text/plain" y escribir en fichero texto

buenas!! Gracias por las respuestas, pero sigo sin conseguir eliminar los saltos de linea...

Yo mi buffer lo tengo declarado asi:
StringBuffer fout = new StringBuffer();

y luego escribo en el de la siguiente formas:

fout.append("texto bla bla bla...");

he intentado resetearlo de la siguiente forma pero m da fallo

fout.reset();

y los saltos de linea al comienzo m los sigue haciendo. Un saludo!
Luis10 está desconectado   Responder Citando
Antiguo 22-feb-2007, 12:27   #7 (permalink)
chuidiang tiene algunos puntos positivos de karma
 
Avatar de chuidiang
 
Fecha de Ingreso: octubre-2004
Mensajes: 751
Re: "text/plain" y escribir en fichero texto

Hola:

¿Cómo escribes el StringBuffer en el fichero? ¿Qué clase usas?

Se bueno.
chuidiang está desconectado   Responder Citando
Antiguo 23-feb-2007, 01:46   #8 (permalink)
Luis10 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Mensajes: 103
Re: "text/plain" y escribir en fichero texto

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

¿Cómo escribes el StringBuffer en el fichero? ¿Qué clase usas?

Se bueno.
pues el StringBuffer lo declaro asi:
StringBuffer fout = new StringBuffer();

luego añado cosas al buffer:
fout.append("bla bla bla");

por ultimo hago esto:
out.print(fout);

y arriba del todo tengo declarado el response asi:
response.reset();
response.setHeader("Content-type","text/plain");
response.setHeader("Content-Disposition","attachment; filename=prueba.txt");
response.setContentType("text/plain;charset=ISO-8859-1");

el contenido del stringbuffer m lo escribe bien, el problema esta en q m saca varios saltos de linea al principio, pero m los saca siempre incluso sin meter nada en el stringbuffer,creo q el problema puede ser algun parametro en donde declaro el response...Muchas Gracias por todo!
Luis10 está desconectado   Responder Citando
Antiguo 06-mar-2007, 08:29   #9 (permalink)
Luis10 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2006
Mensajes: 103
Re: "text/plain" y escribir en fichero texto

Buenas!

Encontre el problema, por si alguien mas le pasa y pueda ser lo q a mi, justo encima de la cabecera de los "response" tenia todos mis import, y m hacia un salto de linea por cada import.

Un saludo!
Luis10 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:40.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93