J'ai essayé d'écrire un tableau dans un fichier. Je sais comment écrire des entiers ou String dans un fichier, mais apporter un tableau me perturbe. J'utilise ceci en ce moment:
public static void write (String file, int[]x) throws IOException{
BufferedWriter outputWriter = null;
outputWriter = new BufferedWriter(new FileWriter(filename));
outputWriter.write("hi");// Here I know i cant just write x[0] or anything. Do i need
//to loop in order to write the array?
outputWriter.newLine();
outputWriter.flush();
outputWriter.close();
}
Comme d'autres l'ont dit, vous pouvez simplement parcourir le tableau et imprimer les éléments un par un. Pour que la sortie apparaisse sous forme de chiffres au lieu de "lettres et symboles", vous devez convertir chaque élément en chaîne. Donc, votre code devient quelque chose comme ceci:
public static void write (String filename, int[]x) throws IOException{
BufferedWriter outputWriter = null;
outputWriter = new BufferedWriter(new FileWriter(filename));
for (int i = 0; i < x.length; i++) {
// Maybe:
outputWriter.write(x[i]+"");
// Or:
outputWriter.write(Integer.toString(x[i]);
outputWriter.newLine();
}
outputWriter.flush();
outputWriter.close();
}
Si vous voulez seulement imprimer le tableau comme [1, 2, 3, ....]
, vous pouvez remplacer la boucle par cette doublure:
outputWriter.write(Arrays.toString(x));
Vous pouvez utiliser la classe ObjectOutputStream
pour écrire des objets dans un flux sous-jacent.
outputStream = new ObjectOutputStream(new FileOutputStream(filename));
outputStream.writeObject(x);
Et lisez le Object
retour comme -
inputStream = new ObjectInputStream(new FileInputStream(filename));
x = (int[])inputStream.readObject()
Si vous êtes d'accord avec Apache commons lib
outputWriter.write(ArrayUtils.join(array, ","));
Passez simplement en boucle sur les éléments de votre tableau.
Ex:
for(int i=0; numOfElements > i; i++)
{
outputWriter.write(array[i]);
}
//finish up down here
private static void saveArrayToFile(String fileName, int[] array) throws IOException {
Files.write(Paths.get(fileName), Collections.singleton(Arrays.toString(array)), Charset.forName("UTF-8"));
}
Si le résultat est lisible par les humains et que les éléments du tableau ont un toString()
défini ...
outputString.write(Arrays.toString(array));