Java 从文本文件输入创建对象
我对java还是很陌生。我正在尝试从文本文件创建对象数组。文本文件有一个名称列表,使用这些名称,我试图创建对象。这是我创建的从文本文件输入创建对象的方法。它在编译时给出一个错误。我不确定我哪里做错了Java 从文本文件输入创建对象,java,object,Java,Object,我对java还是很陌生。我正在尝试从文本文件创建对象数组。文本文件有一个名称列表,使用这些名称,我试图创建对象。这是我创建的从文本文件输入创建对象的方法。它在编译时给出一个错误。我不确定我哪里做错了 public boolean createObjects(PersonNames2[] person) throws Exception { boolean found = false; int position = 0; if(canCreat
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)函数中将数组作为参数传递,那么为什么需要初始化???