Zapis do pliku

0

program ma zapisywać do pliku obliczone w symulacji wartości mocy i mase. Ale nie bardzo wiem jak się do tego zabrać :/ póki co mam coś takiego:

package project;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import javax.swing.JFileChooser;

public class Loading {
	public static Simulation  y;
	
	public static UraniumSample x;
	public static String m[];
	public static String p[];
	
	public static void zapis() throws IOException {
PrintWriter zapis = new PrintWriter("dane.txt");
		 for (int i=1; i<2; i++) {//wymiary próbki od 1 do 25 
				
				x = new UraniumSample (i,i,i);//przelicza na mase
				//x.getMass();
				
				y = new Simulation(x);//robi się symulacja 
				y.start();
				//y.getPower();//pobiera moc wydzieloną
				m[i] = Double.toString(y.getPower());
				p[i] = Double.toString(x.getMass());
				zapis.println(m[i]+"\t"+p[i]);
		 
				zapis.close();	
		 }}
}
0

Zacząłbym od tego że zamykasz plik już w pierwszym obiegu pętli. Niemniej twoja pętla i tak leci raz, więc to wiele nie zmienia. Zapnij tam debuger i zobacz krok po kroku co się dzieje.

Niemniej jak widze te wszystkie static tutaj to już wiem że nic z tego kodu nie będzie...

0

Szybko napisany program, który się kompiluje:

package pl.koziolekweb._4p._308784;

import java.io.IOException;
import java.io.PrintWriter;

public class Loading {

	public static Simulation y;

	public static UraniumSample x;
	public static String m[] = new String[11];
	public static String p[] = new String[11];

	public static void main(String[] args) throws IOException {
		zapis();
	}

	public static void zapis() throws IOException {
		PrintWriter zapis = new PrintWriter("dane.txt");
		for (int i = 1; i < 2; i++) {//wymiary próbki od 1 do 25

			x = new UraniumSample(i, i, i);//przelicza na mase
			//x.getMass();

			y = new Simulation(x);//robi się symulacja
			y.start();
			//y.getPower();//pobiera moc wydzieloną
			m[i] = Double.toString(y.getPower());
			p[i] = Double.toString(x.getMass());
			zapis.println(m[i] + "\t" + p[i]);

			zapis.close();
		}
	}
}


class UraniumSample {
	final int i;

	public UraniumSample(int i, int i1, int i2) {
		this.i = i;
	}

	public double getMass() {
		return i;
	}
}

class Simulation {
	private final UraniumSample x;

	public Simulation(UraniumSample x) {
		this.x = x;
	}


	public double getPower() {
		return x.i;
	}

	public void start() {

	}
}

i pojawia się plik na dysku. Pytanie czy nie masz jakiś wyjątków u siebie.

0

Może przenieś tego close poza pętlę jak radził @Shalom i weź pod uwagę, że konstruktor:
"PrintWriter(String fileName) - Creates a new PrintWriter, without automatic line flushing, with the specified file name."

Przed zamknięciem pliku spróbuj dodać. zapis.flush();

1 użytkowników online, w tym zalogowanych: 0, gości: 1