Есть ли способ распечатать все значения массива в выходной файл?

#java #arrays #eclipse #file-io

#java #массивы #eclipse #file-io

Вопрос:

Я создал класс осадков, который хранит количество (в дюймах) осадков в течение года (всего 12 значений). У меня это работает, но теперь мне нужно распечатать эти значения в выходной файл (я назвал его RainFall.txt ). Когда я запускаю код и проверяю файл, он сохраняет только первое значение массива.

Я уже пробовал использовать try and catch методы, но он ничего не печатает.

 import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.text.DecimalFormat; 

public class RainFallMain {
    public static void main(String[] args) throws FileNotFoundException {

        // Array representing rainfall figures
        // position correlates to the month
        double[] thisYear = { 1.6, 2.1, 1.7, 3.5, 2.6, 3.7, 3.9, 2.6, 2.9, 4.3, 2.4, 3.7 };
        RainfallClass r = new RainfallClass(thisYear);
        PrintWriter outputFile = new PrintWriter("RainFall.txt"); 
               for (int i = 0; i < thisYear.length; i  )
               {
                   outputFile.println(thisYear[i]);
                   outputFile.close();
               }
 

В выходном файле должны быть перечислены все 12 значений.

Комментарии:

1. Проверьте, где вы закрываете файл

2. Чтобы быть точным, переместитесь outputFile.close() за пределы цикла for .

3. Спасибо! Я этого не заметил. Такое простое решение.

Ответ №1:

Выходной файл должен быть закрыт только после того, как вы закончите всю запись.

  public static void main(String[] args) throws FileNotFoundException {
    // Some statements
    for (int i = 0; i < thisYear.length; i  ){
        outputFile.println(thisYear[i]);    
    }
    outputFile.close(); // Moved out of the for loop
    // Some more statements if there. 
}