6

こんにちは、テキストファイルに書き込むデータがたくさんあります。行の各行には約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 
4

3 に答える 3

10

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(プラットフォーム固有の行区切り記号が自動的に使用されることに注意してください。)

于 2011-11-07T22:32:26.463 に答える
3

いくつかのオプションがありますが、最も簡単なのはを使用することString.format()です。詳細については、フォーマット文字列の詳細を参照してください

String.format("%-20s %-10s ...etc...", aName, aObjRef, ...etc...);
于 2011-11-07T22:32:47.583 に答える
2

String.format コマンドを使用して、次のようなことを行うことができます。

output.write("%20s %20s %20s %20s%s".format(
  aName, aObjRef, aValue, strDate, note, System.getProperty("line.separator")
);
于 2011-11-07T22:35:33.420 に答える