我写一个小程序用文件保存生产商的信息包括每个生产厂家所能生产的产品。
我想用数组保存产品的信息,但不知道怎么把数组写进文件。大家说说这个问题怎样做比较好,不用数据库。

解决方案 »

  1.   

    放到一个xml文件里就可以了。
      

  2.   

    import java.util.*;
    import java.io.*;
    class Product implements Serializable{
    private String productId;
    private float unitPrice;

    public Product(String productId ,float unitPrice)
    {
    this.productId = productId;
    this.unitPrice = unitPrice;
    }

    public Product()
    {
    productId = null;
    unitPrice = 0;
    }

    public String getProductId()
    {
    return productId;
    }

    public float getUnitPrice()
    {
    return unitPrice;
    }

    public void setProductId(String productId)
    {
    this.productId = productId;
    }

    public void setUnitPrice(float unitPrice)
    {
    this.unitPrice = unitPrice;
    }

    public String toString()
    {
    StringBuffer sb = new StringBuffer();
    sb.append("[产品号:");
    sb.append(productId);
    sb.append("][单价:");
    sb.append(unitPrice);
    sb.append("]");

    return sb.toString();
    }
    }public class Test {

    public static void main(String[] args)
    {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    Vector v = new Vector();
    String line = "Start";
    String productId = null;
    float  unitPrice = 0f;

    // 输入
    while(!line.equalsIgnoreCase("exit"))
    {
    try{
    System.out.print("请输入产品名:");
    line = br.readLine();
    if (line.equalsIgnoreCase("exit"))
    break;
    productId = line;
    System.out.print("该产品单价:");
    line = br.readLine();
     
    try {
    unitPrice = Float.parseFloat(line);
    }catch (NumberFormatException  e)
    {
    unitPrice = 0;
    }
    Product product = new Product(productId,unitPrice);
    v.addElement(product);
    }catch (IOException e){
    e.printStackTrace();
    }
    }

    Object[] obj = v.toArray();
    Object[] obj2 = null;

    try {
    // 将对象数组写入文件(只提供一思路)
    ObjectOutputStream oout = new ObjectOutputStream(new FileOutputStream("c:/tmp.x"));
    oout.writeObject(obj);

    // 从文件中读取
    ObjectInputStream oin = new ObjectInputStream(new FileInputStream("c:/tmp.x"));
    obj2 = ((Object[])(oin.readObject()));

    // 输出读取到的内容
    for (int i = 0; i < obj2.length; i ++)
    {
    System.out.println("产品信息" + i + "  "+(Product)obj2[i]);
    }

    }catch (FileNotFoundException e){
    e.printStackTrace();
    }catch (ClassNotFoundException e){
    e.printStackTrace();
    }catch (IOException e){
    e.printStackTrace();
    }

    }
    }
    运行如下:
    F:\>javac Test.javaF:\>java Test
    请输入产品名:a1
    该产品单价:24
    请输入产品名:a2
    该产品单价:23
    请输入产品名:exit
    产品信息0  [产品号:a1][单价:24.0]
    产品信息1  [产品号:a2][单价:23.0]