2009-11-22 3 views
1

Я пытаюсь написать матрицу в текстовый файл. Чтобы сделать это, я хотел бы знать, как записать массив в строку в текстовом файле.Java: написать массив в текстовый файл

Я дам пример:

INT [] массив = {1 2 3 4};

Я хочу, чтобы этот массив в текстовый файл в формате:

1 2 3 4 

и не в формате:

1 
2 
3 
4 

Можете ли вы помочь мне с этим?

Большое спасибо

+0

покажи нам, что у тебя есть !!! – Tom

ответ

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

Вы забыли пробелы. –

+0

Теперь у вас есть заднее пространство. –

+1

Да. Я защищаюсь от этого с моим комментарием «псевдокода». Но хорошо, я добавлю, что в. – Tom

3

Тогда не написать новую строку после каждого элемента, но пространство. То есть не используйте writeln() или println(), но только write() или print().

Возможно фрагменты кода являются более ценными, так вот простой пример:

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

Edit:, если вы не хотите, завершающие пробелы по некоторым причинам, здесь другой подход:

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

Это оставляет конечное пространство в конце строки. Это может быть подходящим для подателя заявки, иначе это может быть не так. Я не знаю. –

+0

Я тоже не знаю, но это просто тривиальное изменение. Я добавил. – BalusC

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 ??? Это даже компилируется? –

+0

Давай, его псевдокод – Ismael

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()); 
Смежные вопросы