Java中的二进制I / O和数据生成

时间:2018-11-06 10:19:05

标签: exception-handling io nullpointerexception

我正在编写一个程序,将一个2,000个人的列表随机生成到一个“ people.txt”文件中,该文件包含他们的名字,姓氏和唯一的ID号。

条件: a)必须从大量名称中选择名字和姓氏。 b)唯一的ID号必须为4位数字。

我的策略如下:

  1. 我创建了一个Person类,其中包含3个私有字段,firstName,lastName和id(所有字符串)。它具有所有的getter / setter和一个空的构造函数。

  2. 我创建了两个用于随机生成和返回名称和ID的类。

  3. 然后,我创建了一个Utilities类,该类基本上将Person对象读写到一个文本文件中。

  4. 最后,这就是我遇到的问题。

    public static void main(String[] args) throws IOException, 
             ClassNotFoundException{
    
        Person[] array = new Person[2000];
    
        RandID idNum = new RandID();
        RandNames rand = new RandNames();
    
        String id;
        String first;
        String last;
    
    
        for(int i=0; i<array.length; i++) {
    
            id = idNum.nextString();
            first = rand.nextFirstName();
            last = rand.nextLastName();
    
            array[i].setID(id);
            array[i].setFirstName(first);
            array[i].setLastName(last);
    
            Utilities.savePerson(array[i]);
        }
    }
    

到目前为止,我所知道的东西归结为NullPointerException,因为首先实例化Person数组,它为null。我想我可能有解决的办法,但要避免花费大量时间尝试弄清蛮力风格,我想在这里确认这是否是一种有效的方法,如果不能,我将非常感谢您的反馈。

所以我想我应该在我的主参数和catch子句中抛出NullPointerException,我将有一个单人对象,其参数调用随机类,然后将该人对象附加到使用NullPointerException捕获的数组中。那行得通吗?

0 个答案:

没有答案