Ho cercato di scrivere una matrice in un file. So come scrivere interi o String in un file, ma portare un array mi confonde. Sto usando questo adesso:
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(); }
Come altri hanno già detto, puoi semplicemente scorrere l’array e stampare gli elementi uno per uno. Per visualizzare l’output come numeri invece di “lettere e simboli” che stavi vedendo, devi convertire ogni elemento in una stringa. Quindi il tuo codice diventa qualcosa del genere:
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(); }
Se vuoi solo stampare la matrice come [1, 2, 3, ....]
, puoi sostituire il loop con questa fodera:
outputWriter.write(Arrays.toString(x));
È ansible utilizzare la class ObjectOutputStream
per scrivere oggetti su un stream sottostante.
outputStream = new ObjectOutputStream(new FileOutputStream(filename)); outputStream.writeObject(x);
E leggi l’ Object
come –
inputStream = new ObjectInputStream(new FileInputStream(filename)); x = (int[])inputStream.readObject()
Se stai bene con Apons
outputWriter.write(ArrayUtils.join(array, ","));
Basta scorrere gli elementi dell’array.
Ex:
for(int i=0; numOfElements > i; i++) { outputWriter.write(array[i]); } //finish up down here
Se il risultato è per gli umani da leggere e gli elementi dell’array hanno un toString()
corretto definito …
outputString.write(Arrays.toString(array));