java io对象流问题

问题描述

我把一个对象用Objectoutputstream,对象流写进文本里,然后还写入了一些其他的文字,不是对象,我在读取这个文件的时候读出了这个对象后剩下的文字应该怎么读出来?能换输入流吗?我用Objectinputstream读对象后,再读内容报错了Exceptioninthread"main"java.io.StreamCorruptedException:invalidtypecode:D3

解决方案

解决方案二:
再换输入流,怎么定位那个不是对象的字符?一般写入对象,即对象序列化,会在文件开头有所标记的,换种思路吧,可以分开。
解决方案三:
想法同楼上。我也在看io这部分,书上的程序敲出来能运行,可就是不懂什么意思,更不要说自己写程序了,还和楼主有不小的差距啊。。。哎。。。
解决方案四:
我也是一个初学者,刚刚从某个培训机构出来。我有一个想法,但是感觉上有点偏门。既然你用的是object输入输出流,那你可以在每次输入内容前先输入一个对象,这个对象里面记录了你之后要输入东西的大致内容,比如说你要输入一个对象,那就在输入对象之前先输入一个对象,这个对象里说你后面要输入一个对象了,如果你后面要存一组字符串,那就在输入字符串之前存入的对象中说后面是一组字符串有多长占多少字节,当然这些都是随意啦。然后要读内容的时候,就可以每次按照这个对象来去相应的数据。我很少回帖的,请不要喷我
解决方案五:
1.很奇怪楼主为什么会把其它数据和对象数据写在一起。2.你写数据的时候可以写字节流,写的时候注意按类似TCP那样,把对象的字节长度先写入文本(用int),写对象转换的字节码,写文字字节码所占长度(int),写文字。3.读取,先读4byte转换inta,按这个长度a读出对象字节,转换为对象,再读4byte转换intb,按b长度读取后面的字节,转文字。
解决方案六:
怎么不能啊?可以记录对象的大小,然后用字节流skip方法跳过那些字节就可以了嘛

时间: 2024-08-01 13:37:08

java io对象流问题的相关文章

求大神解答一下-java中对象流objectstream问题

问题描述 java中对象流objectstream问题 输出的为什么不是cyh男20 ym女20求大神解答!!!!!!!!!! 解决方案 你的代码和我这个一样吗?麻烦把你的代码粘全了,我看看 解决方案二: 这个是照片......... 解决方案三: 我和你写的差不多,不知道你为啥会这样,我给你粘出我的代码package lianxi; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOE

Java IO包装流如何关闭

问题: (1)JAVA的IO流使用了装饰模式,关闭最外面的流的时候会自动调用被包装的流的close()方吗? (2)如果按顺序关闭流,是从内层流到外层流关闭还是从外层到内存关闭? 问题(1)解释: 如下例子代码: 1 2 3   FileInputStream is = new FileInputStream(".");      BufferedInputStream bis = new BufferedInputStream(is);     bis.close(); 从设计模式上

Java IO: 字符流的Piped和CharArray

本章节将简要介绍管道与字符数组相关的reader和writer,主要涉及PipedReader.PipedWriter.CharArrayReader.CharArrayWriter. PipedReader 原文链接 PipedReader能够从管道中读取字符流.与PipedInputStream类似,不同的是PipedReader读取的是字符而非字节.换句话说,PipedReader用于读取管道中的文本.代码如下: Reader reader = new PipedReader(pipedW

Java IO: 字符流的Buffered和Filter

本章节将简要介绍缓冲与过滤相关的reader和writer,主要涉及BufferedReader.BufferedWriter.FilterReader.FilterWriter. BufferedReader 原文链接 BufferedReader能为字符输入流提供缓冲区,可以提高许多IO处理的速度.你可以一次读取一大块的数据,而不需要每次从网络或者磁盘中一次读取一个字节.特别是在访问大量磁盘数据时,缓冲通常会让IO快上许多. BufferedReader和BufferedInputStrea

集合,对象流怎么一起运用啊?

问题描述 求各位大牛发一个程序里面有集合与io对象流的混合运用的程序! 解决方案 实体类package cn.com.wangxiuwei.javaeye.entity;import java.io.Serializable;public class JavaEyeUser implements Serializable{ //Serializable 对象序列化必须要实现的接口private String name;private int age;public String getName()

Java IO教程

Java IO 是一套Java用来读写数据(输入和输出)的API.大部分程序都要处理一些输入,并由输入产生一些输出.Java为此提供了java.io包. 如果你浏览下java.io包,会对其中各样的类选择感到迷惑.这些类的作用都是什么?对于某个任务该选择哪个类?怎样创建你自己的类做插件?这个手册的目的就是给你介绍这些类是如何组织的,以及怎样使用他们,因此你就不会疑惑需要时怎样选取合适的类,或者是否有一个满足你需求的类已经存在了. Java.io 包的范围 java.io 包并没有涵盖所有输入输出

io流-java面对对象做一个初级的系统

问题描述 java面对对象做一个初级的系统 初级的人事管理系统~~求解人还管理系统的需求,前提是没有数据库,只有java类库和io流 解决方案 姐姐这里有个带论文的带程序的,如果需要的话,采纳了留下你的邮箱哦. 解决方案二: 那么数据存储可以存在文件中而不用数据库啊.

java IO之 序列流 集合对象Properties 打印流 流对象

序列流 也称为合并流. SequenceInputStream 序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从 第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达 包含的最后一个输入流的文件末尾为止. 注意: 构造函数 SequenceInputStream(InputStream s1, InputStream s2) SequenceInputStream(InputStream s

java IO之 File类+字节流 (输入输出 缓冲流 异常处理)

1. File类 File 路径问题: 上下级文件夹之间使用分隔符分开: 在Windows中分隔符为'\' ,在Unix/Linux中分隔符为'/' 跨平台分隔符: 专业的做法是使用File.separatorChar,这个值会根据系统得到的相应的分隔符. 例:new File("c:"+File.separatorChar+"a.txt"); 注意,如果是使用"\" ,则需要进行转义,写为"\\"才可以     绝对路径与相