2009-11-22 204 views
1

我正在尝试将矩阵写入文本文件。 为了做到这一点,我想知道如何将数组写入文本文件中的一行。Java:将数组写入文本文件

我将举一个例子:

INT []数组= {1 2 3 4};

我想有此数组中的文本文件格式:

1 2 3 4 
格式

,而不是:

1 
2 
3 
4 

你能帮助我吗?

非常感谢

+0

告诉我们你得到了什么! – Tom 2009-11-22 23:00:00

回答

3

这是一个天真的做法

//pseudocode 
String line; 
StringBuilder toFile = new StringBuilder(); 
int i=0; 
for (;array.length>0 && i<array.length-2;i++){ 
    toFile.append("%d ",array[i]); 
} 

toFile.append("%d",array[i]); 

fileOut.write(toFile.toString()); 
+0

你忘了空格。 – 2009-11-22 22:57:31

+0

现在你有一个尾随空间。 – 2009-11-22 23:02:48

+1

是的。我用我的“伪码”评论屏蔽了这一点。但好的,我将在 – Tom 2009-11-22 23:04:05

3

然后不要在每个项目后写一个新行,而是一个空格。即请勿使用writeln()println(),而只使用write()print()

也许代码片段更有价值,所以这里是一个基本的例子:

for (int i : array) { 
    out.print(i + " "); 
} 

编辑:如果你不想尾随空格出于某些原因,这里的另一种方法:

for (int i = 0; i < array.length;) { 
    out.print(array[i]); 
    if (++i < array.length) { 
     out.print(" "); 
    } 
} 
+0

这会在行尾留下尾部空格。这可能适合提交者,或者它可能不适合。我不知道。 – 2009-11-22 23:12:07

+0

我也不知道,但这只是一个微不足道的变化。我已经添加了它。 – BalusC 2009-11-23 00:48:21

0

“伪”

for(int i = 0 ; i < array.lenght ; i++) 
    { 
     if(i + 1 != array.lenght) 
     { 
      // Not last element 
      out.write(i + " "); 
     } 
     else 
     { 
      // Last element 
      out.write(i); 
     } 
    } 
+0

lenght ???这甚至编译? – 2011-05-09 03:22:45

+0

来吧,它的伪代码 – Ismael 2011-05-31 20:21:43

1

好吧,我知道汤姆已经提供了一个公认的答案 - 但这是这样做的另一种方式(我认为它看起来更好,但是这也许只是我):

int[] content  = new int[4] {1, 2, 3, 4}; 
StringBuilder toFile = new StringBuilder(); 

for(int chunk : content) { 
    toFile.append(chunk).append(" "); 
} 

fileOut.write(toFile.toString().trim());