Pregunta

mi pregunta tiene que ver con mi pregunta anterior ( Cómo mostrar los datos del archivo de texto en formato específica).

Me preguntaba si es posible en primer lugar, para almacenar los datos en el archivo txt en el formato específico en lugar de almacenarla primero y luego recuperar con una y mostrarla en formato específico?

por ejemplo. en lugar de almacenar datos en el archivo txt como esto

Jessica 
Walking
20 minutes
Matthew
Run 
10 minutes

quería guardarlo en archivo txt en este formato

Jessica   Walking    20 minutes
Matthew   Run        10 minutes 
¿Fue útil?

Solución

En cuanto a su comentario a la respuesta de adeel:

  

Gracias adeel825, sin embargo no sé dónde poner el "\ t" .. hasta ahora utilizo este método: nueva PrintStream (fout) .println (nombre); nueva PrintStream (fout) .println (ejercicio); nuevo PrintStream (fout) .println ( "10 minutos");

En primer lugar, no llame "new PrintStream(fout)" cada vez que imprima algo. Haga lo siguiente:

PrintStream ps = new PrintStream(fout);
ps.print(name);
ps.print('\t');
ps.print(exercise);
ps.print('\t');
ps.print(time);
ps.println();

O simplemente:

PrintStream ps = new PrintStream(fout);
ps.println(name + '\t' + exercise + '\t' + time);

Editar

En respuesta a tu comentario:

  

una pregunta más ... algunos de los nombres son demasiado largos y que requiere más tab..I han puesto ps.print ( '\ t', '\ t'); aunque parece que no trabaja ..

Si esto es un problema, parece que usted está tratando de almacenarlos en la forma que desee para mostrarlos. Yo había asumido que estaba tratando de almacenarlos de una manera que sería fácil de analizar mediante programación. Si desea almacenarlos muestran en columnas, sugeriría el relleno con espacios en lugar de fichas.

Si sabe que todas las columnas van a ser menor que, por ejemplo, 30 caracteres de ancho, se podría hacer algo como esto con printf:

ps.printf("%30s%30s%30s%n", name, exercise, time);

Eso sintaxis puede parecer muy bizantino si no está acostumbrado a ello .. basiclly cada uno "% 30" significa rellenar el argumento de cadena para que sea al menos 30 caracteres de ancho. Su resultado no se ve bien si alguno de los valores son 30 o más caracteres de ancho. Si no se puede saber de antemano, que tendrá que recorrer los valores en cada columna para determinar el ancho de las columnas tienen que ser.

Otros consejos

No hay ningún problema con el almacenamiento de datos de esta manera. Todo lo que necesita hacer es escribir los valores y delimitan con un carácter de tabulación "\ t"

Es necesario "handcode" su formato. La mejor manera de hacer esto sería para envolver su código de archivos para acceder a alguna parte, y crear algo como:

OpenFile()
CreateEntry(name, type, time)

Si desea escribir los registros de longitud fija se puede utilizar la cadena. [Formato] [1] Método

ps.println(String.format("%20s%20s%20s",name,exercise,time))

Esto creará una tabla con 20 caracteres en cada campo. Puede readup sobre la sintaxis aquí

[1]: http://java.sun.com/javase/6/docs/api/java/lang/String.html#format (java.lang.String , java.lang.Object ...)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top