2013-06-28 151 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

知道了,有趣,谢谢! –