gpt4 book ai didi

java - 将 txt 文件读入 ArrayList 时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:25 24 4
gpt4 key购买 nike

我正在编写一段代码来从 txt 文件中读取一些文本,如下所示:

Car:
Model: Ford
Color: Red
Cost: $123123.91
Car Type: Sedan
Towing: Included

Car:
Model: Mitsubishi
Color: Yellow
Cost: $12312.00
Car Type: Sedan
Towing: Not Included

Car:
Model: Honda
Color: Grey
Cost: $1231.00
Car Type: Sedan
Towing: Not Included

到一个数组列表。但所有文本都存储在索引位置 0 处。

我希望每个订单都存储在不同的索引位置。

Arraylist“订单”存储输入到 gui 中的订单,该订单完美运行。当按下退出时,这些命令将被写入文本文件

在下次运行时,当我按下加载按钮时,所有订单都会从同一文本文件读取到不同的 ArrayList“orders2”。

我尝试过使用 for 循环,但问题似乎出在我读取/存储订单到文本文件的方式上。

public void save() throws FileNotFoundException {

PrintWriter pw = new PrintWriter(new FileOutputStream(fileName, false));

for (Object orderlist : orders) {
pw.println(orderlist);
}
pw.close();
}

public void load() throws FileNotFoundException {

FileInputStream fileIn = new FileInputStream(fileName);
Scanner scan = new Scanner(fileIn);
scan.useDelimiter(" ");
while (scan.hasNext()) {

orders2.add(scan.next());
}

System.out.println(orders2.get(0));
}

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("Exit")) {
try {
save();
} catch (FileNotFoundException f) {
f.printStackTrace();
}

System.exit(0);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}

最佳答案

扫描器通过标记您作为输入提供的流来工作。 token 是由分隔符分隔的事物。您告诉它 token 由两个空格分隔。鉴于您的文本文件中任何位置都不包含 2 个空格,因此整个内容(从头到尾)都是一个标记。

如果我阅读您的代码(不完整),我会看到 for (Object orderlist :orders): 这不可能是正确的;这意味着订单是订单列表或订单列表数组。你真的有订单 list 吗?数组和列表都不会像这样打印,所以我对此表示怀疑;这意味着您的变量名称具有误导性,可能是因为您不太清楚自己的代码在做什么。此外,使用 Object 可能不正确。当然,ordersOrder 对象的数组或列表,或者可能是 String 对象。

有了更清晰的代码,就更容易理解和评论。

关于java - 将 txt 文件读入 ArrayList 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58661257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com