txt texto sobreescribir por modificar linea leer guardar escribir datos como archivos archivo java arrays file loops bufferedwriter

texto - cómo escribir una matriz en un archivo Java



modificar archivos txt en java (5)

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


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 el resultado es para que los humanos lo lean y los elementos de la matriz tengan un toString() definido ...

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


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


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