Почему выходные данные, записанные в файл, равны нулю? В чем проблемы моего кода?

#java

#java

Вопрос:

Я пробовал input = nextLine() и добавлял входные данные к строковым данным, но все равно возвращал null. В чем может быть возможная проблема здесь?

[МЕТОД ВЫВОДА]

 public void Withdraw(){
    
    System.out.print("Enter withdrawal amount:" );
    double withdraw = input.nextDouble();
    System.out.println("Your withdrawal amount: "   withdraw);
        if(this.balance - withdraw < 100){
            System.out.println("The maintaining balance should not be less than 100. " );
        }else
    this.balance -= withdraw;
    System.out.println("Your new balance is:"   this.balance);
}
  

[ДОБАВИТЬ В ФАЙЛ]

 public void withdrawWriter(){
try{
        String data = "Your withdrawal amount: "   withdraw;

        File file = new File(this.name   ".txt");

        //if file doesnt exists, then create it
        if(!file.exists()){
            file.createNewFile();
        }

        //true = append file
        FileWriter fileWritter = new FileWriter(file.getName(),true);
            BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
            bufferWritter.write("rn");
            bufferWritter.write(data);
            bufferWritter.close();

        System.out.println("Done");

    }catch(IOException e){
        e.printStackTrace();
    }
}
  

Вот скриншот:

НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ПОСМОТРЕТЬ ФОТОГРАФИЮ

Ответ №1:

Из снимка экрана ясно, что у вас есть как локальная переменная double withdraw , так и поле в классе double withdraw .

Может сработать, если вы избавитесь от локального, так что просто:

 withdraw = input.nextDouble();
  

Ответ №2:

Вы принимаете входные данные внутри локальной переменной withdraw и пытаетесь использовать переменную экземпляра внутри вашего метода withdrawWriter . Попробуйте использовать вывод переменной экземпляра при приеме ввода, подобного этому:

 public void Withdraw(){

    System.out.print("Enter withdrawal amount:" );


**withdraw = input.nextDouble();**

    System.out.println("Your withdrawal amount: "   withdraw);
        if(this.balance - withdraw < 100){
            System.out.println("The maintaining balance should not be less than 100. " );
        }else
    this.balance -= withdraw;
    System.out.println("Your new balance is:"   this.balance);
}