2011-01-15 33 views
4

出力が列のように表示されるようにタブ区切りテキストファイルを作成しようとしていますが、何らかの理由でタブが別の場所に表示されます。これは、データ値が異なることが原因です。ここ正しくJavaでタブ区切りのテキストファイルを作成する方法

は、私は、行と列

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

を構築していますそして、あなたは最初の列の原因に長いテキストエントリを持つ値を見ることができるように出力が

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

として出ている方法です両方の列が2つのタブで区切られていても、2番目の列は少し離れて移動します。 2番目の列の位置が同じ行にあることを確認するにはどうすればよいですか?

おかげ

答えて

3

は、いくつかの任意の長さにいくつかのパディングコードとパッドあなたのコラムコンテンツ用How can I pad a String in Java?を参照してください。

5

タブ文字の幅が定義され、あなたがテキストを表示するために使用するものに依存していません。列を揃えたい場合は、代わりにスペースを使用します。たとえば、printf形式の%10sを使用してスペースに揃えることができます。

1

これは、ファイルが「正しい」かどうかとは別に、別の問題であるデータの表示に関連しています。 printf(...)またはString.format(..)、またはFormatterクラスの他のバリエーションを使用して、データを表示用に書式設定することを検討してください。またはGUIの場合は、JTableに表示します。

3

文字列の長さを25文字とし、差異をxにするにはx = (25 - column1.length)をスペースで埋めなければなりません。テキストエディタでモノスペースフォントを使用することを忘れないでください。

パッドに文字列は、あなたがこれを使用することができます: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"); 
関連する問題