I would like to produce nicely formatted tabular text from arbitrary dataset object models. Is there a good library to do this in Java?
Specifically, I want output that is formatted like command line data management tools such as the CLI for mysql. Example:
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| name | varchar(100) | YES | | NULL | |
| release | year(4) | YES | | NULL | |
| studio | varchar(50) | YES | | NULL | |
| review | varchar(50) | YES | | NULL | |
| gross | int(11) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
One main challenge is that I won't automatically know the maximum column widths before I start traversing the data. Also, there are plenty of edge cases, such as dealing with very large value lengths and large numbers of rows and columns.
If I have to build this myself, I imagine I would make use of String.format, and I'd need to pre-analyze the full dataset before starting the output. That's a very low level of coding though, so I'd love to find a good library that has already solved this problem.