it-swarm.com.ru

как записать массив в файл Java

Я пытался записать массив в файл. Я знаю, как записать в файл целые числа или строку, но вывод массива меня смущает. Я использую это прямо сейчас:

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



}
5
Lock1618

Как уже говорили другие, вы можете просто зациклить массив и распечатать элементы один за другим. Чтобы вывод отображался в виде цифр, а не «букв и символов», которые вы видели, вам необходимо преобразовать каждый элемент в строку. Итак, ваш код становится примерно таким:

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

Если вы просто хотите распечатать массив наподобие [1, 2, 3, ....], вы можете заменить цикл на следующий:

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

Вы можете использовать класс ObjectOutputStream для записи объектов в основной поток.

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

И прочитайте Object обратно как -

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

Если вы в порядке с Apache Commons Lib

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

Просто зациклите элементы в вашем массиве.

Пример:

for(int i=0; numOfElements > i; i++)
{
outputWriter.write(array[i]);
}
//finish up down here
3
Max
private static void saveArrayToFile(String fileName, int[] array) throws IOException {
        Files.write(Paths.get(fileName), Collections.singleton(Arrays.toString(array)), Charset.forName("UTF-8"));
}
0
Константин Журов

Если результат предназначен для чтения людьми, а элементы массива имеют правильную toString(), определенную ...

outputString.write(Arrays.toString(array));
0
Tonny Madsen