编程练习 请老师帮忙完善

编程练习 请老师帮忙完善

Product

package com.lding.io;

import java.io.Serializable;

public class Product implements Serializable {
    private int id;
    private String name;
    private String categories;
    private double price;
    public Product(){

    }

    public Product(int id, String name, String categories, double price) {
        this.id = id;
        this.name = name;
        this.categories = categories;
        this.price = price;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCategories() {
        return categories;
    }

    public void setCategories(String categories) {
        this.categories = categories;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "产品ID:" + id +
                "\n产品名称:" + name  +
                "\n产品属性:" + categories +
                "\n产品价格:" + price +
                "元\n";
    }
}

ProductTest

package com.lding.io;

import java.io.*;

public class ProductTest {
public static void main(String[] args) {
Product iphone= new Product(123,"iphone","telephone",4888.0);
Product ipad=new Product(234,"ipad","computer",5088.0);
Product macbook=new Product(345,"macbook","computer",10688.0);
Product iwatch=new Product(256,"iwatch","watch",4799.0);
FileInputStream fis=null;
ObjectInputStream ois=null;
FileOutputStream fos=null;
ObjectOutputStream oos=null;
try {
fis=new FileInputStream("lding.txt");
ois=new ObjectInputStream(fis);

fos=new FileOutputStream("lding.txt");
oos=new ObjectOutputStream(fos);

oos.writeObject(iphone);
oos.writeObject(ipad);
oos.writeObject(macbook);
oos.writeObject(iwatch);
oos.flush();

System.out.println("apple系列产品信息");
Product temp=(Product) ois.readObject();
System.out.println(temp);
temp=(Product) ois.readObject();
System.out.println(temp);
temp=(Product) ois.readObject();
System.out.println(temp);
temp=(Product) ois.readObject();
System.out.println(temp);

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
fis.close();
fos.close();
oos.close();
ois.close();
} catch (IOException e) {
e.printStackTrace();
}

}
}
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小脸 2020-12-24 16:44:50

同学你好,

1、经测试运行同学代码是正确的,棒棒的,继续加油~

2、循环写入与读取可参考如下代码:

这里要注意在进行循环读取时,建议在输入流中添加null对象,然后通过循环遍历输出对象信息,直到输出流读取到null,停止循环

http://img1.sycdn.imooc.com//climg/5fe4556b09b1366807370748.jpg


祝学习愉快~

  • 提问者 一娆Hacker #1

    老师 如果我存入很多个对象呢

    如何进行循环写入文件

    2020-12-24 16:45:39
  • 好帮手慕小脸 回复 提问者 一娆Hacker #2

    同学你好,问答中贴出的图片已经回答同学所问的这个问题,建议看一下。

    祝学习愉快~

    2020-12-24 16:49:50
一娆Hacker 提问者 2020-12-24 16:00:42

老师请问一下

http://img1.sycdn.imooc.com//climg/5fe44a8109c47c3c02670127.jpg

http://img1.sycdn.imooc.com//climg/5fe44a8a0962851703270171.jpg


这里如何循环的写入和读入呢

老师能帮忙完善一下代码吗

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师