2010-05-10 2 views
5

Devo stampare l'elenco degli oggetti in un file di testo con formato tabella. Ad esempio, se ho una lista di oggetti Person (ha getName, getAge e getAddress), il file di testo dovrebbe avere il seguente aspetto.come stampare l'elenco degli oggetti su file con formattazione in formato tabella utilizzando java

Name  Age  Address 

Abc  20  some address1 
Def  30  some address2 

Posso farlo scrivendo manualmente del codice, dove devo occuparmi degli spazi e dei problemi di formattazione.

Sono curioso di sapere se sono API o strumenti per eseguire questa formattazione?

risposta

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; 
    } 
} 

uscita:

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

Impressionante! Questo è veramente semplice ed efficace. Grazie. – jgg

0

Utilizzare printf con campi imbottiti per allineare le colonne.

PrintWriter.printf per essere precisi

Problemi correlati