cómo escribir una matriz en un archivo Java

He estado tratando de escribir una matriz en un archivo. Sé cómo escribir enteros o cadenas en un archivo, pero traer una matriz me confunde. Estoy usando esto ahora mismo:

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(); } 

Al igual que otros, puede simplemente recorrer la matriz e imprimir los elementos uno por uno. Para que la salida aparezca como números en lugar de “letras y símbolos” que estaba viendo, debe convertir cada elemento en una cadena. Entonces su código se convierte en algo como esto:

 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 solo desea imprimir la matriz como [1, 2, 3, ....] , puede reemplazar el ciclo con este delineador:

 outputWriter.write(Arrays.toString(x)); 

Puede usar la clase ObjectOutputStream para escribir objetos en una secuencia subyacente.

 outputStream = new ObjectOutputStream(new FileOutputStream(filename)); outputStream.writeObject(x); 

Y lee el Object atrás como …

 inputStream = new ObjectInputStream(new FileInputStream(filename)); x = (int[])inputStream.readObject() 

Si estás de acuerdo con Apache commons lib

 outputWriter.write(ArrayUtils.join(array, ",")); 

Simplemente recorra los elementos de su matriz.

Ex:

 for(int i=0; numOfElements > i; i++) { outputWriter.write(array[i]); } //finish up down here 

Si el resultado es para que los humanos lo lean y los elementos de la matriz tengan un toString() definido …

 outputString.write(Arrays.toString(array));