如何读取用户输入来创建对象?

时间:2012-10-02 19:16:19

标签: java arrays input

我仍然是Java的新手,我正在为一个项目上课,我不确定如何编写我的程序来获取userInput(fileName)并从中创建一个新对象。我的指示是编写一个程序,该程序从用户读取文件名,然后从该文件中读取数据,创建对象(键入StudentInvoice)并将它们存储在ArrayList中。

这就是我现在所处的位置。

    public class StudentInvoiceListApp {

    public static void main (String[] args) {
    Scanner userInput = new Scanner(System.in);
    String fileName;

    System.out.println("Enter file name: ");
    fileName = userInput.nextLine();

    ArrayList<StudentInvoice> invoiceList = new ArrayList<StudentInvoice>();
    invoiceList.add(new StudentInvoice());
    System.out.print(invoiceList + "\n");

    }

2 个答案:

答案 0 :(得分:0)

您可以尝试为流中的序列化/反序列化对象编写一个类(请参阅this文章)。

答案 1 :(得分:0)

好吧,正如罗伯特所说,关于存储在文件中的数据格式的信息不足。假设文件的每一行都包含学生的所有信息。您的程序将包括按行读取文件并为每行创建一个StudentInvoice。像这样:

public static void main(String args[]) throws Exception {
    Scanner userInput = new Scanner(System.in);
    List<StudentInvoice> studentInvoices = new ArrayList<StudentInvoice>();
    String line, filename;

    do {
        System.out.println("Enter data file: ");
        filename = userInput.nextLine();
    } while (filename == null);

    BufferedReader br = new BufferedReader(new FileReader(filename));
    while ( (line = br.readLine()) != null) {
        studentInvoices.add(new StudentInvoice(line));
    }

    System.out.println("Total student invoices: " + studentInvoices.size());
}