嗨我有一堆数据我正在写一个文本文件,每行的行包含大约4个不同的数据,我想这样做,以便每个类型的数据都按行对齐。
这是写入数据的行。
output.write(aName + " " + aObjRef + " " + aValue + " " + strDate + " " + note + (System.getProperty("line.separator")));
以下是现在编写时数据的外观。
CR_2900_IPGR_AL 2900.EV2 Alarm 111107
CR_2900_IMPT_AL 2900.EV311 Alarm 111107
CR_STH_CHL_AL 2900.EV315 Alarm 111107
CR_OAT_AL 2900.EV318 Alarm 111107
SLB_102_2270A Temp Event 60215.EV1 Fault 111107
MACF_70300_IMPT_AL 70300.EV2 Alarm 111107
这就是我喜欢它的样子
CR_2900_IPGR_AL 2900.EV2 Alarm 111107
CR_2900_IMPT_AL 2900.EV311 Alarm 111107
CR_STH_CHL_AL 2900.EV315 Alarm 111107
CR_OAT_AL 2900.EV318 Alarm 111107
SLB_102_2270A Temp Event 60215.EV1 Fault 111107
MACF_70300_IMPT_AL 70300.EV2 Alarm 111107
答案 0 :(得分:9)
查看Formatter
课程或String.format(String format, Object... args)
方法。
试试这个例子:
String formatStr = "%-20s %-15s %-15s %-15s %-15s%n";
output.write(String.format(formatStr, aName, aObjRef, aValue, strDate, note));
(请注意%n
将自动使用特定于平台的行分隔符。)
答案 1 :(得分:3)
有许多选项,但最简单的方法是使用String.format()
。请参阅format string details for more info,但大致:
String.format("%-20s %-10s ...etc...", aName, aObjRef, ...etc...);
答案 2 :(得分:2)
您可以使用String.format命令执行以下操作:
output.write("%20s %20s %20s %20s%s".format(
aName, aObjRef, aValue, strDate, note, System.getProperty("line.separator")
);