2010-05-10 9 views
5

Tengo que imprimir la lista de objetos en un archivo de texto con formato de tabla. Por ejemplo, si tengo una lista de objetos Person (tiene getName, getAge y getAddress methods), el archivo de texto debe verse como a continuación.cómo imprimir la lista de objetos a un archivo con formato en formato de tabla usando java

Name  Age  Address 

Abc  20  some address1 
Def  30  some address2 

Puedo hacerlo escribiendo manualmente algún código, donde tengo que ocuparme de espacios y problemas de formateo.

Solo tengo curiosidad por saber si son API o herramientas para hacer este trabajo de formateo.

Respuesta

7
import java.util.*; 

public class Test { 

    public static void main(String[] args) { 
     List<Person> list = new ArrayList<Person>(); 
     list.add(new Person("alpha", "astreet", 12)); 
     list.add(new Person("bravo", "bstreet", 23)); 
     list.add(new Person("charlie", "cstreet", 34)); 
     list.add(new Person("delta", "dstreet", 45)); 

     System.out.println(String.format("%-10s%-10s%-10s", "Name", "Age", "Adress")); 
     for (Person p : list) 
      System.out.println(String.format("%-10s%-10s%-10d", p.name, p.addr, p.age)); 
    } 
} 

class Person { 
    String name; 
    String addr; 
    int age; 
    public Person(String name, String addr, int age) { 
     this.name = name; 
     this.addr = addr; 
     this.age = age; 
    } 
} 

Salida:

Name  Age  Adress  
alpha  astreet 12   
bravo  bstreet 23   
charlie cstreet 34   
delta  dstreet 45   
+0

impresionante! Esto es realmente simple y efectivo. Gracias. – jgg

0

Utilice printf con campos acolchados para lograr alineaciones de columna.

PrintWriter.printf para ser específico

Cuestiones relacionadas