不知道为什么只输出一个商品?

不知道为什么只输出一个商品?

package homework;
//序列化与反序列化2
/*
 * 序列化:把Java对象转换为字节序列的过程
 反序列化:把字节序列恢复为Java对象的过程,就是读对象的过程
 */
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class GoodsTest {
//定义一个类去读取数据
	public static void main(String[] args) {
		//定义Goods类对象
		Goods goods1 = new Goods("123","iphone","telephone",4888.0);
		Goods goods2 = new Goods("234","ipad","computer",5088.0);
		Goods goods3 = new Goods("345","macbook","computer",10688.0);
		Goods goods4 = new Goods("256","iwatch","watch",4799.0);
		
		try {
			//用于写对象 先写进去再读出来
			FileOutputStream fos = new FileOutputStream("hello.txt");//创建一个文件来写信息
			ObjectOutputStream oos = new ObjectOutputStream(fos);//对象序列化为字节(写对象的过程)
			//用于读
			FileInputStream fis = new FileInputStream("hello.txt");
			ObjectInputStream ois = new ObjectInputStream(fis);//字节反序列化为对象(读对象的的过程)
			//将Goods对象信息写入文件
			oos.writeObject(goods1);
			oos.writeObject(goods2);
			oos.writeObject(goods3);
			oos.writeObject(goods4);
			oos.flush();
			//读对象信息
			try {
				Goods goods =(Goods) ois.readObject();
				System.out.println(goods);
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			fos.close();
			oos.close();
			fis.close();
			ois.close();
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	
		

	}

}


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

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

2回答
不正经的程序员 2019-04-26 13:32:55

readObject没法判断是否到文件末尾,只能看文件里有几个对象就输出几次,这里有四个,定义一个for循环,输出4次就行了。

吃吃吃鱼的猫 2019-04-26 10:41:44

同学你好,只输出一个对象的原因是程序中只有输出一个商品的语句。

如果想要输出全部对象,需要循环输出。

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

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕沐4893774 #1
    如何循环输出哦?
    2019-04-26 10:52:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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