java - 从 .txt 文件中读取数据并创建对象数组
问题描述
我需要一些帮助:我正在用 java 进行飞行名册模拟。名册将容纳 25 名乘客,其中 22 名来自文本文件 (PassengerList.txt)。对于每位乘客,需要 3 个数据点;姓名、座位等级和座位号以及 2 个可选数据点常旅客编号和常旅客积分。每个乘客都在自己的行上,每个数据点用逗号分隔。例如:
Allen George,Economy Class,8A,#GEO456,10000
Judy Hellman,Economy Class,8B
到目前为止,我有这个类以及构造函数:
public class Passengers
{
private String name, type, seat, flyernum;
private int points;
//Constructor to intialize the instance data
Passengers(String full_name, String seat_type, String seat_number,
String frequent_flyer_number, int frequent_flyer_points)
{
name=full_name;
type=seat_type;
seat=seat_number;
flyernum=frequent_flyer_number;
points=frequent_flyer_points;
} //end Passengers
我需要做的是从文本文件中读取每一行并创建数组,即使第一行看起来像这样:
Passenger passenger1 = new Passenger ("Allen George","Economy Class","8A"
,"#GEO456",10000)
进入这样的数组:
Passenger[0] = passenger1;
我显然是一个 java 初学者,但我已经被这个问题困扰了很长时间,当我尝试新的东西时,我不断收到不同的错误消息。我一直在使用扫描仪来读取文件。文本文件不需要被覆盖,只需由程序读取和扫描即可。也只能使用数组,ArrayList 是不行的。也只有两个文件,Passengers 类和 main 方法。请帮忙!谢谢!
解决方案
使用这个 main 方法从文本文件中读取数据并将数据聚合到Passengers 对象中。乘客列表对象中的整个乘客列表。
public static void main(String[] args) {
List<Passengers> passengersList = new ArrayList<Passengers>();
File file = new File("Your file location..");
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
while ((st = br.readLine()) != null){
String[] data = st.split(",");
String flyNumber = null;
int flyPoints = 0;
switch (data.length){
case 4: flyNumber = data[3];
break;
case 5: flyNumber = data[3];
flyPoints = Integer.valueOf(data[4]);
break;
}
Passengers passenger = new Passengers(data[0], data[1], data[2], flyNumber, flyPoints);
passengersList.add(passenger);
}
System.out.println(passengersList.get(0));
} catch (IOException e) {
e.printStackTrace();
}
}
推荐阅读
- c - 如何获取文件描述符引用的文件指针?
- gcc - 非临时加载 (MOVNTDQA) 操作数类型、对齐方式和 asm 语法
- performance - 如何在 Haskell 中记忆 LCS
- reactjs - 为什么我的主页被设置为特定的 url 而不是通常的“/”?
- r - 运行插入符号模型,它停止了。它提到了重采样性能测量中的缺失值
- java - 如何比较 2 个不同大小的二维数组?
- racket - 任何使用 shift 键修改字母键的 DrRacket 键绑定都不起作用
- html - 无法通过网站访问对象 URL,即使在公开对象/存储桶之后也是如此
- javascript - 如何跟踪一个不起眼的 ueoe angularjs 错误
- vba - VBA、错误处理、堆栈溢出、第二次循环通过后引发的错误