java从文本中读取数据_java – 从文本文件中读取数据并创建对象

这对于扫描仪读取数据来说是一个很好的工作.至于无法使用像ArrayList这样的集合,您必须自己动态地重新分配数组.

请尝试以下方法:

public static void main(String[] args) throws FileNotFoundException {

Scanner input = new Scanner(new File("Stock.txt"));

input.useDelimiter("-|

");

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

Department: %s

Name: %s

Price: %s

Stock: %d

",

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值