Datei wird erstellt, aber Daten spart nicht?

itsDathan:

Ich habe durch einige Fragen geschaut und haben dafür gesorgt, dass ich die Akte geschlossen, aber keine der Daten gespeichert werden. Die Datei im Dateisystem erstellt wird, scheint es nur leer. Mein Programm zieht Daten aus einer anderen Datei und führt einige Berechnungen. Er sendet dann die Daten durch, wenn Aussagen, wo er druckt, was zu einer neuen Datei notwendig ist.

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String[] args) throws FileNotFoundException {

        int tempf, windspeed;
        Scanner x;

        try {
            x = new Scanner(new File("weatherData.txt"));
            PrintWriter out = new PrintWriter(new File("numbers.txt"));
            while (x.hasNextLine()) {
                String[] data = x.nextLine().split("\\s+"); // Split the line on space(s)

                try  {
                    tempf = Integer.parseInt(data[1]);
                    //System.out.print(tempf + " ");
                } catch (Exception e) {
                    System.out.println("Invalid/No data for temperature");
                    tempf = 0;
                }
                try {
                    windspeed = Integer.parseInt(data[2]);
                    //System.out.println(windspeed);
                } catch (Exception e) {
                    //System.out.println("NA");
                    windspeed = 0;
                }
                 double C1 = -42.379;
                 double C2 = 2.04901523;
                 double C3 = 10.14333127;
                 double C4 = -0.22475541;
                 double C5 = -.00683783;
                 double C6 = -5.481717E-2;
                 double C7 = 1.22874E-3;
                 double C8 = 8.5282E-4;
                 double C9 = -1.99E-6;
                 int celsius = ((tempf-32)*5/9); //Celcius equatin
                 double windmps = windspeed / 2.23694; // Wind in mps equation
                 double windchill = 35.74 + 0.6215*tempf + (0.4275*tempf - 35.75) * Math.pow(windspeed, 0.16); // Windchill equation 
                 double windchillc = ((windchill-32)*5/9);
                 double heatindexf =  C1 + (C2 * tempf) + (C3 * windspeed) + (C4 * tempf * windspeed) + (C5 * Math.pow(tempf,2) + (C6 * Math.pow(windspeed,2)) + (C7 * Math.pow(tempf,2) * windspeed) + (C8 * tempf * Math.pow(windspeed,2)) + (C9 * Math.pow(tempf,2) * Math.pow(windspeed,2)));
                 double heatindexc = ((heatindexf-32)*5/9);

                if (tempf <= 50) {

                    System.out.printf("%20s%20s%20s%20s%20s%20s\n", "Farenheit:","Celsius","Wind Speed(MPH)" ,"Wind Chill(F)" , "Wind Chill(C)" , "Wind Speed(MPS)");
                    System.out.printf("%20d%20d%20d%20d%20d%20d\n", tempf, celsius,windspeed ,(int)windchill, (int)windchillc, (int)windmps);

                }

                else if (tempf >= 80) {
                    System.out.printf("%20s%20s%20s%20s%20s\n", "Farenheit:","Celsius","Humidity %", "Heat Index(F)","Heat Index(C)");
                    System.out.printf("%20d%20d%20d%20d%20d\n", tempf ,celsius,windspeed , (int)heatindexf, (int)heatindexc);
                }

                else if (tempf > 50 && tempf < 80) {
                    System.out.printf("%20s%20s\n","Farenheit:","Celsius");
                    System.out.printf("%20d%20d\n",tempf,celsius);
                }
                out.close();
            }

        } catch (FileNotFoundException e) {
            System.out.println("Unable to read file.");
        }

    }
}
Nilanka Hände:

Sie können nicht auf Schriftsteller schreiben, nachdem innerhalb der Schleife geschlossen. Ändern Sie es an:

PrintStream out = new PrintStream(new FileOutputStream("numbers.txt", true)); 
System.setOut(out);
while (x.hasNextLine()) {
    //Loop body

}

out.close();

Auch änderte ich out-Datei Print dann können Sie direkt system.out druckt Datei schreiben. Ohne Datei schreibt ausdrücklich besagt.

Ich denke du magst

Origin http://10.200.1.11:23101/article/api/json?id=378950&siteId=1
Empfohlen
Rangfolge