Tengo un problema muy raro. Después de escribir esto:
for (File f : currentFile.listFiles()) {
if (f.isDirectory()){
System.out.println(f.getName()+"\t"+"Dir\t"+Command.getpremission(f)+"\t"+f.getTotalSpace());
}
else{
System.out.println(f.getName()+"\t"+"File\t"+Command.getpremission(f)+"\t"+f.getTotalSpace());
}
Veo esto impreso:
see.txt File rw 267642728448
see1.txt File rw 267642728456
see2.txt File rw 267642728448
¿Por qué hay un problema con las pestañas?
El "problema" de los tabuladores es que indentan el texto en posiciones de tabulación fijas, normalmente múltiplos de 4 u 8 caracteres (según la consola o el editor que los muestre). Tu primer nombre de fichero tiene 7 caracteres, por lo que el siguiente tabulador después de su final está en la posición 8. Los siguientes nombres de fichero, sin embargo, tienen 8 caracteres. Sin embargo, los siguientes nombres de archivo tienen 8 caracteres, por lo que el siguiente tabulador está en la posición 12.
Si quiere asegurarse de que las columnas quedan bien sangradas en la misma posición, debe tener en cuenta la longitud real de las columnas anteriores y modificar el número de tabuladores siguientes o rellenarlas con el número de espacios necesario. Esto último puede conseguirse utilizando, por ejemplo, System.out.printf
con una especificación de formato adecuada (por ejemplo, "%1$13s"
especifica una anchura mínima de 13 caracteres para mostrar el primer argumento como una cadena).
Siguiendo con los comentarios de Péter y duncan, normalmente utilizo un método de relleno rápido, algo como -
public String rpad(String inStr, int finalLength)
{
return (inStr + " " // typically a sufficient length spaces string.
).substring(0, finalLength);
}
similarmente puedes tener un lpad()
también
El problema es la longitud de los nombres de archivo. El primer nombre de fichero sólo tiene 7 caracteres, por lo que el tabulador aparece en el carácter 8 (haciendo un tabulador cada 4 caracteres). Sin embargo, los siguientes nombres de archivo tienen 8 caracteres, por lo que el siguiente tabulador no se producirá hasta el carácter 12. Y si tuviera nombres de fichero de más de 11 caracteres, se encontraría de nuevo con el mismo problema.