乱码是怎么回事

乱码是怎么回事

import java.io.Serializable;

public class Product implements Serializable{
	private String ID;//产品ID
	private String name;//产品名称
	private String categories;//产品属性
	private double price;//产品价格
	public Product(String ID,String name,String categories,double price){
		this.setID(ID);
		this.setName(name);
		this.setCategories(categories);
		this.setPrice(price);
	}
	public String getID() {
		return ID;
	}
	public void setID(String iD) {
		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;
	}
	public String toString(){
		return "产品ID:"+this.getID()+"/n"+"产品名称:"+this.getName()+"/n"+"产品属性:"+this.getCategories()+"/n"+"产品价格:"+this.getPrice();
	}
}
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;

public class ProductTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Product product1=new Product("123","iphone","telephone",4888.0);
		Product product2=new Product("234","ipad","computer",5088.0);
		Product product3=new Product("345","macbook","computer",10688.0);
		Product product4=new Product("256","iwatch","watch",4799.0);
		System.out.println("apple系列产品信息:");
		try {
			FileOutputStream fos=new FileOutputStream("product.txt");
			ObjectOutputStream oos=new ObjectOutputStream(fos);
			oos.writeObject(product1);
			oos.writeObject(product2);
			oos.writeObject(product3);
			oos.writeObject(product4);
			oos.flush();
			
			FileInputStream fis=new FileInputStream("product.txt");
			ObjectInputStream ois=new ObjectInputStream(fis);
				System.out.println((Product)ois.readObject());
				fos.close();
				oos.close();
				fis.close();
				ois.close();
			
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	catch(IOException e){
			e.printStackTrace();
		}
	}

}

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

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

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

1回答
好帮手慕酷酷 2019-07-28 15:08:53

同学你好,文件中乱码的问题同学不用担心哦,老师在5-1视频的9分钟左右也是乱码,这里只是因为txt文件与我们写入的编码格式不同。只要我们读的时候,读回来是原样就可以了。例如

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

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


  • 提问者 qq_就是这样_1 #1
    那要怎么才能正常显示
    2019-07-28 15:09:43
  • 好帮手慕珊 回复 提问者 qq_就是这样_1 #2
    你好!对象输出流写到文件中的本身不是文本数据,是对象序列化后的数据,所以乱码显示是正常的,只要保证读取数据没问题就可以了。祝学习愉快!
    2019-07-28 16:37:42
  • 提问者 qq_就是这样_1 回复 好帮手慕珊 #3
    但我想知道要怎样才能正常显示
    2019-07-28 19:53:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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