Как правильно создать текстовый файл с разделителями табуляции в Java - PullRequest
4 голосов
/ 15 января 2011

Я пытаюсь создать текстовый файл с разделителями табуляции, чтобы вывод отображался в виде столбцов, но по какой-то причине вкладка отображается в разных местах. Это связано с тем, что значения данных имеют разные размеры.

вот как я строю строки и столбцы

output.append("|\t" + column1 + "\t\t\t:\t" + column2 +"  \t\t\n");

И вывод выходит как

|   activeSessions      : 0         
|   duplicates      : 0         
|   expiredSessions         : 0         
|   rejectedSessions        : 0         
|   sessionMaxAliveTime         : 0         
|   sessionCounter      : 0         

Как видно из значений с более длинными текстовыми записями в первом столбце, второй столбец перемещается немного дальше, даже если оба столбца разделены двумя вкладками. Как я могу убедиться, что местоположение второго столбца находится на той же строке?

Спасибо

Ответы [ 4 ]

5 голосов
/ 15 января 2011

Ширина символа табуляции не определена и зависит от того, что вы используете для отображения текста. Если вы хотите выровнять столбцы, используйте вместо них пробелы. Вы можете выравнивать по пробелам, используя printf формат %10s, например.

3 голосов
/ 15 января 2011

см. Как я могу дополнить строку в Java? для некоторого кода дополнения и дополнить содержимое столбца произвольной длиной.

3 голосов
/ 15 января 2011

Вам нужно будет установить длину строки, скажем, 25 символов и дополнить разницу x = (25 - column1.length) x количеством пробелов.Не забывайте использовать моноширинный шрифт в текстовом редакторе.

Чтобы дополнить строку, вы можете использовать это: StringUtils.rightPad (String, int)

import org.apache.commons.lang.StringUtils;
output.append("|\t" + StringUtils.rightPad(column1, 25) + "\t\t\t:\t" + StringUtils.rightPad(column2, 15) +"  \t\t\n");
1 голос
/ 15 января 2011

Это не имеет никакого отношения к тому, является ли файл «правильным» или нет, и все это связано с отображением данных, что является отдельной проблемой.Подумайте об использовании printf (...) или String.format (..) или других вариантов класса Formatter для форматирования ваших данных для отображения.Или, если GUI, отображать в JTable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...