我需要一些帮助:我正在用Java进行超市仿真,但是有一个问题,我有一个文本文件(Stock.txt),例如,我在上面有所有的超市库存:
第一个数字是产品的“ id”,第二个是产品所属的部门,第三个是产品名称,第二个是价格,最后一个数字是库存的产品数量。我有这个课:
public class Product {
protected String name;
protected double price;
protected String department;
protected int id;
protected int stock;
}
因此,基本上我需要做的是从文本文件中读取每一行并创建产品,即对于第一行,请执行以下操作:
Product product1 = new Product(0,"Bakery","Chocolate Cake", 12.5, 250);
然后将其添加到数组
Product[0] = product1;
然后,对于文本文件中的所有内容,运行模拟时,每个客户将购买随机数量的随机产品库存,因此库存数量将减少。最后,当模拟结束时,程序必须在相同的文本文件中写入每种产品的修改数量。
事实是,也许这样做太容易了,但是我不知道该怎么做,因为自从我开始使用Java编程以来(我是一个初学者),用Java读写文件一直是我的真正问题。我有一些使用BufferedReader和StringTokenizer类来读取和创建对象问题的想法,但是我不知道该怎么做,也不知道该如何解决覆盖问题。非常感谢您的帮助!
哦! 顺便说一句,我真的只需要使用数组,所以使用ArrayList或任何其他结构甚至都不是选择:(
对于a来说Scanner
,读取数据是一项很好的工作。就无法像ArrayList
您一样使用集合,您将不得不自己动态地重新分配数组。
请尝试以下操作:
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("Stock.txt"));
input.useDelimiter("-|\n");
Product[] products = new Product[0];
while(input.hasNext()) {
int id = input.nextInt();
String department = input.next();
String name = input.next();
double price = Double.valueOf(input.next().substring(1));
int stock = input.nextInt();
Product newProduct = new Product(name, price, department, id, stock);
products = addProduct(products, newProduct);
}
for (Product product : products) {
System.out.println(product);
}
}
private static Product[] addProduct(Product[] products, Product productToAdd) {
Product[] newProducts = new Product[products.length + 1];
System.arraycopy(products, 0, newProducts, 0, products.length);
newProducts[newProducts.length - 1] = productToAdd;
return newProducts;
}
public static class Product {
protected String name;
protected double price;
protected String department;
protected int id;
protected int stock;
private static NumberFormat formatter = new DecimalFormat("#0.00");
public Product(String n, double p, String d, int i, int s) {
name = n;
price = p;
department = d;
id = i;
stock = s;
}
@Override
public String toString() {
return String.format("ID: %d\r\nDepartment: %s\r\nName: %s\r\nPrice: %s\r\nStock: %d\r\n",
id, department, name, formatter.format(price), stock);
}
}
结果:
ID: 0
Department: Bakery
Name: Chocolate Cake
Price: 12.50
Stock: 250
ID: 1
Department: Meat
Name: Premium Steak
Price: 2.60
Stock: 120
ID: 2
Department: Seafood
Name: Tuna
Price: 1.20
Stock: 14
我需要一些帮助:我正在做一个在Java的飞行花名册模拟。名册将容纳25名乘客,其中22名来自文本文件(passengerlist.txt)。对于每个乘客,有3个必需的数据点;姓名、座位等级和座位号和2个可选数据点数常旅客号码和常旅客点数。每个乘客都在自己的线路上,每个数据点都用逗号隔开。例如: 我有这个类,到目前为止还有构造函数: 我需要做的是从文本文件中读取每一行并创建数组,即使第一个look行
档案员。txt包含两类员工的详细信息,即月薪和小时津贴。如果是月薪员工,则该文件包含名字、姓氏、性别、职级、类型和基本工资,如果是小时薪员工,则包含小时工资和工作小时数。该文件的示例如下所示: 约翰·史密斯M经理每月45000.00 Sunil Bates M高级每小时700.00 45 梁爱娃F警官每月30500.00 我要写一个程序,会看每个员工,计算奖金占基本工资的百分比,对于一个按小时计酬
问题内容: 无论如何,我可以写到tempfile并将其包含在命令中,然后关闭/删除它。我想执行命令,例如:some_command / tmp / some-temp-file。 提前谢谢了。 问题答案: 如果需要带有名称的临时文件,则必须使用该功能。然后就可以使用了。有关详细信息,请阅读 http://docs.python.org/library/tempfile.html。
我想创建一个应用程序,每天从一个文件夹中读取一次多个xml文件,然后读取它们并提取数据并构建一个新的xml文件,我想知道哪个选项更适合这种情况: 使用Spring批处理读取并处理所有文件,然后写入新文件
问题内容: 我正在尝试从.Net创建一个Zip文件,该文件可以从Java代码读取。 我已经使用SharpZipLib创建了Zip文件,但是如果生成的文件根据#ZipLib库的CheckZip函数是有效的,并且可以通过WinZip或WinRar成功解压缩,则在尝试使用Java对其进行解压缩时总是会收到错误消息Java中的.Utils.Zip类。 问题似乎出在SharpZipLib写的错误标题中,我还
我在Eclipse中有一个简单的maven项目。应用程序包含文件:src/main/Resources/test.txt.我想读取文件并将其写入输出。它在Eclipse中工作,但在创建jar文件后不能从命令行。如何配置项目以两种方式工作。我错在哪里?不正确的jar文件、java代码、清单、maven配置? 应用程序结构: 应用程序结构 运行: 错误: Java代码: pom.xml: fileRe