如何使用java将对象列表打印到具有表格格式的文件

jgg*_*jgg 5 java

我必须将对象列表打印到具有表格格式的文本文件中.例如,如果我有Person列表(具有getName,getAge和getAddress方法)对象,则文本文件应如下所示.

Name       Age      Address

Abc        20       some address1
Def        30       some address2 
Run Code Online (Sandbox Code Playgroud)

我可以通过手动编写一些代码来实现这一点,我必须处理空格和格式问题.

我只是好奇他们是API还是工具来进行这种格式化工作?

aio*_*obe 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Name      Age       Adress    
alpha     astreet   12        
bravo     bstreet   23        
charlie   cstreet   34        
delta     dstreet   45        
Run Code Online (Sandbox Code Playgroud)