2009-11-22 8 views
1

J'essaie d'écrire une matrice dans un fichier texte. Pour ce faire, je voudrais savoir comment écrire un tableau dans une ligne dans le fichier texte.Java: écrire un tableau dans un fichier texte

Je vais vous donner un exemple:

int [] array = {1 2 3 4};

Je veux avoir ce tableau dans un fichier texte au format:

1 2 3 4 

et non dans le format:

1 
2 
3 
4 

Pouvez-vous me aider?

Merci beaucoup

+0

Montre nous ce que tu as !!! – Tom

Répondre

3

Voici une approche naïve

//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

Vous avez oublié les espaces. –

+0

Vous avez maintenant un espace de fin. –

+1

Oui. Je protège de cela avec mon commentaire "pseudocode". Mais ok, je vais ajouter cela. – Tom

3

Alors ne pas écrire une nouvelle ligne après chaque élément, mais un espace. C'est à dire. n'utilisez pas writeln() ou println(), mais seulement write() ou print().

Peut-être que des extraits de code sont plus précieux, alors voici un exemple de base:

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

Edit: si vous ne voulez pas les espaces de fin pour certaines raisons, voici une autre approche:

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

Cela laisse un espace de fin à la fin de la ligne. Cela pourrait convenir à l'auteur, sinon il pourrait ne pas l'être. Je ne sais pas. –

+0

Je ne sais pas, mais c'est juste un changement trivial. Je l'ai ajouté. – BalusC

0

« pseudocode »

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

longueur ??? Est-ce que cela compile même? –

+0

viens, son pseudo-code – Ismael

1

Ok, je sais que Tom déjà fourni une réponse acceptée - mais ceci est une autre façon de le faire (je pense qu'il semble mieux, mais c'est peut-être juste moi):

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()); 
Questions connexes