2013-06-28 52 views
0

我保存一些值到一個txt文件,然後我想能夠顯示它在一個對話框中。所有的好,做到了,但儘管在txt文件中的值很好地形成,像這樣:從TXT廢墟格式讀取

Aaaaaaaa  0.55  1 
Bbbbb   1   2.2 
CCCCCCCCC  3   0.22 

讀,將它們設置爲一個TextView當他們得到的所有雜亂的是這樣的:

Aaaaaaaa  0.55   1 
Bbbbb  1   2.2 
CCCCCCCCC  3  0.22 

我書面方式方法:

FileOutputStream f = new FileOutputStream(file); 
     PrintWriter pw = new PrintWriter(f); 
     for (int n = 0; n < allpret.size() - 1; n++) { 
      if (cant[n] != Float.toString(0) 
        && pret[n] != Float.toString(0)) { 
       String myFormat = "%-20s %-5s %-5s%n"; 
       pw.println(String.format(myFormat, prod[n], cant[n], 
         pret[n])); 

我的閱讀方法:

StringBuilder text = new StringBuilder(); 

      try { 
       BufferedReader br = new BufferedReader(new FileReader(file)); 
       String line; 

       while ((line = br.readLine()) != null) { 
        text.append(line); 
        text.append('\n'); 
       } 
      } catch (IOException e) { 

      } 

爲什麼它毀掉的空間量以及如何解決這一問題? 謝謝,祝你有個美好的夜晚!

+0

您是否嘗試過使用標籤'\ t'字符?例如: 'String myFormat =「%-20s \ t \ t%-5s \ t \ t%-5s%n」;' –

+0

是的,同樣的事情。問題不在寫它,而是在閱讀或查看it.Thanks無論如何! –

回答

1

至少有兩種解決方案:

  1. 嘗試設置字體通過textView.setTypeface(Typeface.MONOSPACE)以等寬。
  2. 請勿使用單個TextView,並根據需要安排不同的佈局。例如,TableLayout在這種情況下非常出色,它適用於所有Android版本。如果您需要,您可以通過編程添加行,所以這不是問題。
+0

太棒了,它修復了它。爲什麼?請解釋一下,如果你可以,我想了解,嘿。謝謝! –

+1

@SorinGrecu等寬字體?這是因爲通常字體具有不同的字符寬度,所以如果您有一串(例如10個字符),則沒有什麼能保證它的寬度與其他字符串具有10個字符完全相同。因此,對齊可以完全關閉。然而,對於等寬字體,所有字符保證具有相同的寬度,因此具有相同字符數的兩個字符串將始終具有完全相同的寬度。 – Malcolm

+0

知道了,有趣,謝謝! –