Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从文本文件输入创建对象_Java_Object - Fatal编程技术网

Java 从文本文件输入创建对象

Java 从文本文件输入创建对象,java,object,Java,Object,我对java还是很陌生。我正在尝试从文本文件创建对象数组。文本文件有一个名称列表,使用这些名称,我试图创建对象。这是我创建的从文本文件输入创建对象的方法。它在编译时给出一个错误。我不确定我哪里做错了 public boolean createObjects(PersonNames2[] person) throws Exception { boolean found = false; int position = 0; if(canCreat

我对java还是很陌生。我正在尝试从文本文件创建对象数组。文本文件有一个名称列表,使用这些名称,我试图创建对象。这是我创建的从文本文件输入创建对象的方法。它在编译时给出一个错误。我不确定我哪里做错了

   public boolean createObjects(PersonNames2[] person) throws Exception
   {
       boolean found = false;
       int position = 0;
       if(canCreateObjects() == true)
       {
           for(int i = 0; i < persons.length && !found; i++)
           {
               if(persons[i] == null)
               {
                   position = i;
                   found = true;
               }
           }
           Scanner reader = new Scanner(file);
           while(reader.hasNext())
           {
               person[position] = new PersonNames2();
               position++;
           }
           reader.close();
           return true;
       }
       return false;
   }
public boolean createObjects(PersonNames2[]person)引发异常
{
布尔值=false;
int位置=0;
如果(canCreateObjects()==true)
{
对于(int i=0;i
错误:数组维度缺少PersonNames person[]=新的person[]

这清楚地表明您没有给出数组的大小

你需要写作

PersonNames person[] = new Person[size]; // For ex : 10 or any X
数组的大小是固定的,您需要在声明/初始化它时告诉它的大小

更新:


由于您正在从文件中读取数据,而不知道数组的长度,因此最好选择数组而不是数组。随着添加元素的时间的推移,项目的大小会不断增加。

如果您是Java新手,那么这个小项目可能会给您提供一组很好的提示。

我已经设法让它工作起来了。谢谢这是工作代码

    public static List<Person> loadPersons(String path) throws Exception
    {
        BufferedReader reader = new BufferedReader(new FileReader(path));
        List<Person> persons = new ArrayList<Person>();

        while((line = reader.readLine()) != null)
        {
            System.out.println("Adding " +line);
            persons.add(new Person(line));
        }

        return persons; 
    }
公共静态列表加载人(字符串路径)引发异常
{
BufferedReader reader=新的BufferedReader(新文件读取器(路径));
List persons=new ArrayList();
而((line=reader.readLine())!=null)
{
System.out.println(“添加”+行);
人员。添加(新人员(行));
}
返回人员;
}

共享您的编译错误…参数为
person
并且您正在使用
persons
我得到此错误PersonNames2.java:27:error:array维度缺少PersonNames person[]=new person[]; ^ 1 error@sᴜʀᴇsʜᴀᴛᴛᴀ 哈哈……欢迎回来……有段时间没在这里见到你了……我也不太活跃:p@Rustam如果我要创建一个具有设置大小的数组,我只需要PersonNames person=new person[5]。如果使用文件中的行数作为size@MichelleAshwini更新我的答案:)希望helps@SURESHATTA这是有道理的。我现在正在尝试。我还以为你是在布尔createObjects(PersonNames2[]person)函数中将数组作为参数传递,那么为什么需要初始化???