Witam,
Mam pewien problem z swoim programem który próbuje napisać. Otóż chcę odczytywać liczby double z klawiatury które będą zapisywane do pliku txt. Lecz jeśli wprowadzone będzie 0 to zostanie dodana nowa linia do pliku txt. Lecz niestety ten program ciągle zapisuje do pliku 0.0 bez względu na wartość. Dlaczego tak się dzieje? Jak to naprawić?
Poniżej mój kod:
import java.io.*;
import java.util.*;
public class Main {
static double liczbaZmiennoprzecinkowa;
public static void main(String[] args) throws IOException{
while(true){
if(liczbaZmiennoprzecinkowa == 0.0){
odczytZklawiatury(liczbaZmiennoprzecinkowa);
zapisDoPliku("0.0");
}
else{
zapisDoPliku(String.valueOf(liczbaZmiennoprzecinkowa));
}
}
}
public static void odczytZklawiatury(Double liczbaZmiennoprzecinkowa) {
try{
Scanner czytajZklawiatury = new Scanner (System.in);
System.out.println("Podaj liczbę zmiennoprzecinkową:");
liczbaZmiennoprzecinkowa = czytajZklawiatury.nextDouble();
}
catch (InputMismatchException e){
System.out.print("Niepoprawna wartość!\n");
return;
}
}
public static void zapisDoPliku (String wartosc) throws IOException {
FileWriter plikTxt = new FileWriter("zadanie1.txt",true);
if(wartosc == String.valueOf(0.0)){
try{
plikTxt.write("\n");
plikTxt.close();
}
catch(IOException e){
System.out.print("Błąd!");
return;
}
}
else if(wartosc != String.valueOf(liczbaZmiennoprzecinkowa)){
try{
plikTxt.write(String.valueOf(liczbaZmiennoprzecinkowa+" "));
plikTxt.close();
}
catch(IOException e){
System.out.print("Błąd!");
return;
}
}
}
}