How can I format the data written to a text file that will be executed in columns?

Hi, I have a bunch of Im data writing to a text file, each row of lines contains about 4 different pieces of data, I want to make each type line-by-line in lines.

Here is a line that writes data.

output.write(aName + "    "  + aObjRef + "    "  + aValue + "    "  + strDate + "    " + note  + (System.getProperty("line.separator")));

Here's what the data looks like when written right now.

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 

And this is how Id like to watch

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 
+5
source share
3 answers

Look at the class Formatteror String.format(String format, Object... args).

Try this for example:

String formatStr = "%-20s %-15s %-15s %-15s %-15s%n";
output.write(String.format(formatStr, aName, aObjRef, aValue, strDate, note));

(Note that it %nwill automatically use the line separator for a specific platform).

+9

, String.format(). . , :

String.format("%-20s %-10s ...etc...", aName, aObjRef, ...etc...);
+3

String.format, - :

output.write("%20s %20s %20s %20s%s".format(
  aName, aObjRef, aValue, strDate, note, System.getProperty("line.separator")
);
+2
source

All Articles