java 对象流 乱码_java - I/O - 对象流

ObjectInputStream

ObjectOutputStream

packageio;import java.io.*;public classObjectStreamTest {public static voidmain(String[] args){

TargetObject to1= new TargetObject("aaa"); //测试用对象

FileInputStream fis= null;

FileOutputStream fos= null;

ObjectInputStream ois= null;

ObjectOutputStream oos= null;try{

fos= new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test\\objectTest.txt");

oos= new ObjectOutputStream(fos); //高级流,用来处理低级流, 对象流,数组流,缓存流等都是高级流

oos.writeObject(to1);

oos.flush();//存入成功,不过内容是乱码,就不贴了

fis= new FileInputStream("C:\\Users\\Administrator\\Desktop\\test\\objectTest.txt");

ois= newObjectInputStream(fis);

TargetObject to2= (TargetObject) ois.readObject(); //readObject()返回的是Object类型,需要强转

to2.show();//name = aaa| num = 1//读取成功

}catch(Exception e){

e.printStackTrace();

}finally{if(fis != null){try{

fis.close();

}catch(IOException e) {

e.printStackTrace();

}

}if(ois != null){try{

ois.close();

}catch(IOException e) {

e.printStackTrace();

}

}if(fos != null){try{

fos.close();

}catch(IOException e) {

e.printStackTrace();

}

}if(oos != null){try{

oos.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}

}

}

测试用的类

packageio;importjava.io.Serializable;public class TargetObject implements Serializable { //必须要继承序列化的接口才能序列化(分解成固定格式)后保存在文件里

privateString name;private static intnum;publicTargetObject(){

}publicTargetObject(String name){this.name =name;

num++;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public static intgetNum() {returnnum;

}public voidshow(){

System.out.print("name = " + name + "| num = " +num);

}

}

低级流:

FileInputStream

FileOutputStream

FileWriter

FileReader

高级流:

高级流都是通过低级流进行工作,可以理解为对低级流进行了扩展

比如:

缓存流  BufferedReader, BufferedWriter, BufferedInputStream, BufferedOutputStream

字符串流  StringReader, StringWriter

数组流  ByteArrayInputStream ByteArrayOutputStream, CharArrayReader, CharArrayWriter

对象流  ObjectInputStream, ObjectOutputStream

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值