【发布时间】:2010-06-06 01:53:53
【问题描述】:
我正在阅读 2 个 csv 文件:store_inventory & new_acquisitions。
我希望能够将store_inventory csv 文件与new_acquisitions 进行比较。
1) 如果项目名称匹配,只需更新 store_inventory 中的数量。
2) 如果new_acquisitions 有一个新的项目在store_inventory 中不存在,则将其添加到store_inventory。
这是我到目前为止所做的,但不是很好。我在需要添加任务 1 和 2 的地方添加了 cmets。
任何完成上述任务的建议或代码都会很棒!谢谢。
File new_acq = new File("/src/test/new_acquisitions.csv");
Scanner acq_scan = null;
try {
acq_scan = new Scanner(new_acq);
} catch (FileNotFoundException ex) {
Logger.getLogger(mainpage.class.getName()).log(Level.SEVERE, null, ex);
}
String itemName;
int quantity;
Double cost;
Double price;
File store_inv = new File("/src/test/store_inventory.csv");
Scanner invscan = null;
try {
invscan = new Scanner(store_inv);
} catch (FileNotFoundException ex) {
Logger.getLogger(mainpage.class.getName()).log(Level.SEVERE, null, ex);
}
String itemNameInv;
int quantityInv;
Double costInv;
Double priceInv;
while (acq_scan.hasNext()) {
String line = acq_scan.nextLine();
if (line.charAt(0) == '#') {
continue;
}
String[] split = line.split(",");
itemName = split[0];
quantity = Integer.parseInt(split[1]);
cost = Double.parseDouble(split[2]);
price = Double.parseDouble(split[3]);
while(invscan.hasNext()) {
String line2 = invscan.nextLine();
if (line2.charAt(0) == '#') {
continue;
}
String[] split2 = line2.split(",");
itemNameInv = split2[0];
quantityInv = Integer.parseInt(split2[1]);
costInv = Double.parseDouble(split2[2]);
priceInv = Double.parseDouble(split2[3]);
if(itemName == itemNameInv) {
//update quantity
}
}
//add new entry into csv file
}
再次感谢您的帮助。 =]
【问题讨论】:
-
如果你真正提出问题,你会发现你会得到更多更好的答案。
标签: java file csv java.util.scanner