Java 获取用户输入并将其存储到文件中的数组

Java 获取用户输入并将其存储到文件中的数组,java,class,methods,fileoutputstream,bufferedinputstream,Java,Class,Methods,Fileoutputstream,Bufferedinputstream,我试图将多个用户输入存储为基于字节的文件,然后获取文件编号,并在我编写的程序中使用它们进行计算。我首先将字符串转换为double,但是我遇到了在calc方法中读取值和子绑定的问题。我发现我应该使用fileOutputStream,但不知道如何将其合并到代码中。任何指导都将不胜感激。请参阅参考代码: import java.util.Scanner; import java.io.*; public class BankApp { public static void main (Str

我试图将多个用户输入存储为基于字节的文件,然后获取文件编号,并在我编写的程序中使用它们进行计算。我首先将字符串转换为double,但是我遇到了在calc方法中读取值和子绑定的问题。我发现我应该使用fileOutputStream,但不知道如何将其合并到代码中。任何指导都将不胜感激。请参阅参考代码:

import java.util.Scanner;
import java.io.*;

public class BankApp {
    public static void main (String [] args) throws IOException{

        double cash = 0;
        int years = 0;
        double pv = 0;
        String line = null;

        String filename = "bank.txt";

        Scanner in = new Scanner(System.in);

        System.out.println("How much money would you like to have?");
        cash = in.nextDouble();

        System.out.println("How many years is your investment?");
        years = in.nextInt();

        Bank1 bank1 = new Bank1(cash, years);

        BufferedWriter bw = new BufferedWriter(new FileWriter(filename));       
        bw.write(String.valueOf(cash));
        bw.close();

        BufferedReader br = new BufferedReader(new FileReader(filename));       
        while((line = br.readLine()) != null)
        {
            //System.out.println(line);
        }

        System.out.println("The present value to invest over the years to reach goal: $"+bank1.presentValue());
        System.out.println("The furture value in the account will be: $"+bank1.futureValue());
    }
}
这是完成所有计算的第二个类

public class Bank1 {

    private double cash;
    private double rate = .0425;
    private int years;

    public Bank1(double cash, int years){
        this.cash = cash;
        this.years = years;     
    }n

    public double presentValue(){
        double pv = cash/Math.pow((1+rate), years);
        double present = Math.round(pv *100);
        present = present/100;
        return present;
    }


    public double  futureValue(){
        double fv = this.presentValue()*Math.pow((1+rate), years);
        double future = Math.round(fv *100);
        future = future/100;
        return future;
    }

}

您最好的选择是阅读java文档中不同类型的字符/字节流,我通常每次读/写数据时都会去那里寻找适合我需要的数据

(这是代码中java.io包的文档,您可以说,
import java.io.*
,它允许您访问文档中列出的任何内容)


当您说“我发现我应该使用fileOutputStream,但不知道如何合并到代码中。”您不必这样做,除非这是一个需要它的赋值,否则我将使用FileWriter或ObjectOutputStream。ObjectOutputStream非常适合您尝试执行的操作。

您可以使用
ObjectOutputStream.writeLong()
编写数据,并使用
ObjectInputStream.readLong()
阅读数据。谢谢,作业刚刚要求我将现有代码转换为基于字节的代码。我读到FileOutputStream会这样做,我正在寻找OjectOutputStream。我是否仍然需要将ObjectOutputStream编写为数组来调用不同的值?在java中,有字符流和字节流。字符流仅以ASCII字符写入(即,它写入“5”和“0”,而不是以二进制形式写入数字50)。字节流以字节(8位)写入,在这种情况下,它以ASCII写入的字母a``变为32二进制,而数字50变为50二进制。谢谢,Harry S.no问题,我只是试图达到50的声誉,所以我可以评论,请考虑使用,而不是代码>双< /代码> S的计算,以避免不可避免的舍入错误。