求大神指导这句有什么问题ObjectInputStream ob = new ObjectInputStream(fk);

wluzhijie 2016-11-28 05:05:17
public class Demo1 {
public static void main(String[] args) throws IOException {
File fl = new File("test.txt");
FileOutputStream fm = new FileOutputStream(fl,true);
ObjectOutputStream kl = new ObjectOutputStream(fm);
kl.writeInt(11);
String str ="我爱你刘宋和";
kl.writeBytes(str);
kl.flush();
kl.close();
FileInputStream fk = new FileInputStream(fl);
ObjectInputStream ob = new ObjectInputStream(fk);
while(fk.read() != -1){
String m = ob.readUTF();
Integer in = ob.readInt();
System.out.println(m);
System.out.println(in);
}
}
}
...全文
577 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayiha85 2016-11-30
  • 打赏
  • 举报
回复
ObjectInputStream与ObjectOutputStream是用来操作序列化对象用的.建议使用File相关的IO如果需要操作文件
soton_dolphin 2016-11-30
  • 打赏
  • 举报
回复
为什么不用FileReader 和FileWriter?
wluzhijie 2016-11-30
  • 打赏
  • 举报
回复
我又没给里面写对象 跟序列化有啥关系 。。。。。 况且写进去了啊,只是读不出来
撸不完的代码 2016-11-29
  • 打赏
  • 举报
回复
很简单的问题,ObjectInputStream与ObjectOutputStream类所读写的对象必须实现Serializable接口,对象中的transient和static类型成员变量不会被读取和写入
soton_dolphin 2016-11-29
  • 打赏
  • 举报
回复
引用 5 楼 dietime1943 的回复:
package com.ibm.dietime1943.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Demo1 {
	private static ObjectInputStream ob;

	public static void main(String[] args) throws IOException {
		File fl = new File("C:\\temp\\test.txt");
		FileOutputStream fm = new FileOutputStream(fl, true);
		ObjectOutputStream kl = new ObjectOutputStream(fm);
		kl.writeInt(11);
		String str = "我爱你刘宋和";
		kl.writeBytes(str);
		
		FileInputStream fk = new FileInputStream(fl);
		ob = new ObjectInputStream(fk);
		while (fk.read() != -1) {
			String m = ob.readUTF();
			Integer in = ob.readInt();
			System.out.println(m);
			System.out.println(in);
		}

		kl.flush();
		kl.close();
	}
}
运行没有错误
这种表白很另类
nikyotensai 2016-11-29
  • 打赏
  • 举报
回复
Input要对应Input
  • 打赏
  • 举报
回复

File fl = new File("d:/test.txt");
		FileOutputStream fm = new FileOutputStream(fl);
		ObjectOutputStream kl = new ObjectOutputStream(fm);
		kl.writeInt(11);
		String str = "测试测试测试";
		kl.writeUTF(str);
		kl.flush();
		kl.close();
		FileInputStream fk = new FileInputStream("d:/test.txt");
		ObjectInputStream ob = new ObjectInputStream(fk);
		Integer in = ob.readInt();
		String m = ob.readUTF();
		ob.close();
		System.out.println(m);
		System.out.println(in);
wluzhijie 2016-11-29
  • 打赏
  • 举报
回复
引用 9 楼 soton_dolphin 的回复:
[quote=引用 5 楼 dietime1943 的回复:]
package com.ibm.dietime1943.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Demo1 {
	private static ObjectInputStream ob;

	public static void main(String[] args) throws IOException {
		File fl = new File("C:\\temp\\test.txt");
		FileOutputStream fm = new FileOutputStream(fl, true);
		ObjectOutputStream kl = new ObjectOutputStream(fm);
		kl.writeInt(11);
		String str = "我爱你刘宋和";
		kl.writeBytes(str);
		
		FileInputStream fk = new FileInputStream(fl);
		ob = new ObjectInputStream(fk);
		while (fk.read() != -1) {
			String m = ob.readUTF();
			Integer in = ob.readInt();
			System.out.println(m);
			System.out.println(in);
		}

		kl.flush();
		kl.close();
	}
}
运行没有错误
这个是运行时报错 到底是哪里的问题 好纠结!!
逗泥丸的平方 2016-11-29
  • 打赏
  • 举报
回复
引用 12 楼 qq_35209952 的回复:
我以为会是编码问题 但是人家日文系统都没事
哦 要不你还是检查一下编码吧
逗泥丸的平方 2016-11-29
  • 打赏
  • 举报
回复
我以为会是编码问题 但是人家日文系统都没事
wluzhijie 2016-11-29
  • 打赏
  • 举报
回复
我这eclipse 报错 你那控制台也没打印出 写进去的内容
qq_34273627 2016-11-29
  • 打赏
  • 举报
回复
你把那个txt文件里面的东西清空
wluzhijie 2016-11-28
  • 打赏
  • 举报
回复
还是报错 你那怎么不报错 不可能吧
bluetata 2016-11-28
  • 打赏
  • 举报
回复

package com.ibm.dietime1943.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class Demo1 {
private static ObjectInputStream ob;

public static void main(String[] args) throws IOException {
File fl = new File("C:\\temp\\test.txt");
FileOutputStream fm = new FileOutputStream(fl, true);
ObjectOutputStream kl = new ObjectOutputStream(fm);
kl.writeInt(11);
String str = "我爱你刘宋和";
kl.writeBytes(str);

FileInputStream fk = new FileInputStream(fl);
ob = new ObjectInputStream(fk);
while (fk.read() != -1) {
String m = ob.readUTF();
Integer in = ob.readInt();
System.out.println(m);
System.out.println(in);
}

kl.flush();
kl.close();
}
}

运行没有错误




wluzhijie 2016-11-28
  • 打赏
  • 举报
回复
日志就是上面我发的那个 我实在是不知道有啥问题 郁闷啊
wluzhijie 2016-11-28
  • 打赏
  • 举报
回复
Exception in thread "main" java.io.StreamCorruptedException: invalid stream header: CED2B0AE at java.io.ObjectInputStream.readStreamHeader(Unknown Source) at java.io.ObjectInputStream.<init>(Unknown Source) at Demo.Demo1.main(Demo1.java:23)
soton_dolphin 2016-11-28
  • 打赏
  • 举报
回复
没看出有什么问题
逗泥丸的平方 2016-11-28
  • 打赏
  • 举报
回复
啥问题 把异常日志贴出来?

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧