我对自己的这项任务非常执着,这是任务的最后一部分,已经超出了我的范围。我们从此代码开始。
x button
我们被告知要创建一个名为createEmployeeFromFile();的方法。在这种方法中,我们将使用Scanner从.txt文件中读取数据,并使用该数据创建Employee对象。现在我对两件事感到困惑。首先,我应该使用的方法类型以及如何使用.txt文件中的数据创建对象。这是我们第一次这样做,这对我来说很难。 Employee1可以正常工作,但是在尝试创建我的方法时,我陷入了创建它的方式。
这是我目前的粗略代码。
import java.util.*;
import java.io.*;
public class TestEmployee2
{
public static void main(String[] args) throws IOException
{
Employee e1 = new Employee2(7, "George Costanza");
e1.setDepartment("Front Office");
e1.setPosition("Assistant to the Traveling Secretary");
e1.setSalary(50000.0);
e1.setRank(2);
e1.displayEmployee();
//Employee e2 = createEmployeeFromFile();
//e2.displayEmployee();
}
}
我不希望得到有人将我指向正确方向的答案。任何帮助将不胜感激。
这是我主班的代码。
import java.util.*;
import java.io.*;
public class TestEmployee2
{
public static void main(String[] args) throws IOException
{
EckEmployee2 e1 = new EckEmployee2(7, "George Costanza");
EckEmployee2 e2 = createEmployeeFromFile();
e1.setDepartment("Front Office");
e1.setPosition("Assistant to the Traveling Secretary");
e1.setSalary(50000.0);
e1.setRank(2);
e2.setNumber();
e2.setName();
e2.setDepartment();
e2.setPosition();
e2.setSalary();
e2.setRank();
e1.displayEmployee();
e2.displayEmployee();
}
createEmployeeFromFile(){
File myFile = new File("employee1.txt");
Scanner kb = new Scanner(myFile);
}
}
为了使事情更清楚,这里是方向
在TestEmployee2中创建一个名为createEmployeeFromFile()的方法,该方法将从文件中读取数据并创建,填充并返回Employee对象。将从中读取的文件称为employee1.txt。在方法中硬编码文件名。该文件包含员工的编号,姓名,部门,职位,薪水和职级。创建一个Scanner对象,并使用Scanner类的方法读取文件中的数据,并使用此数据创建Employee对象。最后返回雇员对象。
答案 0 :(得分:0)
在Java中,要从方法返回值,请将该对象类型添加到方法签名中,如下所示,简而言之,java方法签名如下:
'修饰符(公共,私有,受保护)''返回类型(void / nothing,int,long,Object等...''methodName(命名方法)''参数(任何对象或基元作为参数
如果您有一个雇员构造函数来解析输入文本,并且假设数据是用定界符分割的,则下面的方法将起作用,可以使用String.split(splitString);。其中splitString是用于拆分数据的字符,即逗号“,”。
public EckEmployee2 getEmployee()
{
try
{
/**
* This will print where your java working directory is, when you run the file
*
*/
System.out.println(System.getProperty("user.dir"));
/**
* Gets the file
*/
File myFile = new File("employee1.txt");
/**
* Makes the scanner
*/
Scanner kb = new Scanner(myFile);
/**
* A list to store the data of the file into
*/
List<String> lines = new ArrayList<>();
/**
* Adds all the lines in the file to the list "lines"
*/
while (kb.hasNext())
{
lines.add(kb.next());
}
/**
* Now that you have the data from the file, assuming its one line here, you can parse the data to make
* your "Employee"
*/
if (lines.size() > 0)
{
final String line = lines.get(0);
return new EckEmployee2(line);
}
}
/**
* This is thrown if the file you are looking for is not found, it either doesn't exist or you are searching
* in the wrong directory.
*/
catch (FileNotFoundException e)
{
e.printStackTrace();
}
/**
* Return null if an exception is thrown or the file is empty
*/
return null;
}
答案 1 :(得分:0)
首先,您的方法createEmployeeFromFile()
必须使用 2个参数,这是一个Scanner
对象才能读取输入,并且您将通过使用{ File
。
返回类型为Scanner
,因为该方法创建了一个Empolyee2
实例,并且必须将其返回。
现在,我给了你一些倡议。
轮到您阅读有关Employee2
对象和Scanner
对象的更多信息。
从文本文件中读取对象的属性很容易,然后使用带有属性的构造函数创建实例并返回它!
希望这会有所帮助。