java对象流
㈠ java中怎么克隆对象流
先将要克隆的对象序列化,也就是实现java.io.Serializable接口,然后再复制。你这个问题也就是类型转换的问题,要看具体情况了,呵呵,不好意思,希望不会添乱
㈡ Java报错,对象流问题
你两个User不是同一个User,最好服务器和客户端的User类一样,且实现序列化
㈢ Java对象流的遍历问题
:都在瞎指挥。ObjectInputStream无论是读对象,还是记取int等java的基本数据类型,在判结束时,绝对既不是-1,也不是什么null。
若文件中有若于个int的数,你用DataInputStream中的readint()去读,何时判读到结尾?
绝对既不是-1,也不是什么null
同样道理:若文件中有若于个Object对象,你用ObjectInputStream中的readObject()去读,何时判读到结尾?
绝对既不是-1,也不是什么null
方法之一:(常用的方法)将若干个对象(数量不定)都装入一个容器中(如:ArrayList之类),然后将容器这一个对象写入就行了。读取时,只要读取一个对象(即容器对象)就行了。
方法之二:(若不想用容器),则由于数量不定,正是用EOFException来判断结束。代码结构如下:(无论是readInt()读int,还是readObject()读对象)
try{
while(true)
{
Object o=ois.radObject();
处理已读出的对象o;
}
}catch(EOFxception e){
//已从流中读完。
}
finallly{
流的关闭。
}
㈣ JAVA 对象流问题求教
第一次运行结束的时候ServerSocket ss没有关闭,第二次没有办法再次打开。
要么增加ss.close(),要么就让服务器读数据的代码用while循环包括起来,让服务不停接收数据。
㈤ java socket传输对象流和文件流的问题
建议采用Tcpmessage,在报文体里写你要传的东西,设置不同的报文头,通过独到的报文头判断你传的是对象是文件
㈥ java里面流是一个对象还是一个类
java.IO.* 是流包,各种流对象都在下面,有FileOutputStream, FileInputStream等好多具体到程序中FileInputStream这就是一个流对象,也是一个类啊
㈦ Java中有几种类型的流
字节流类
抽象父类: InputStream,OutputStream
实现类包括如下几种:
BufferedInputStream 缓冲流-过虑流
BufferedOutputStream
ByteArrayInputStream 字节数组流-节点流
ByteArrayOutputStream
DataInputStream 处理JAVA标准数据流-过虑流
DataOutputStream
FileInputStream 处理文件IO流-节点流
FileOutputStream
FilterInputStream 实现过虑流-字节过虑流父类
FilterOutputStream
PipedInputStream 管道流
PipedOutputStream
PrintStream 包含print() 和 println()
RandomAccessFile 支持随机文件
字符流
抽象父类:Reader, Writer
㈧ JAVA对象流的作用是什么
对象流作用就是要对类的对象进行保存和读取,使其能够只动进行!
㈨ java 对象流
1,不要用内部类
TermSchele单独拿出来建个类
2,你写的是个object数组,读却读单个坑定不行。
packageaction;
importjava.io.*;
importjava.util.*;
//对象流的知识点
publicclassMainClass_Sched
{
publicstaticvoidmain(String[]args)
{
Schelefs=newSchele();
fs.createTermSchele();
}
}
classSchele
{
byteterm;
TermSchelets[]=newTermSchele[8];;
publicSchele()
{
Scannersc=newScanner(System.in);
System.out.println("输入第几学期");
term=sc.nextByte();
}
publicvoidcreateTermSchele()
{
ts[term-1]=newTermSchele();
ts[term-1].input();
try{
Filef=newFile("d:\TermSubject("+term+").dat");
FileOutputStreamfos=newFileOutputStream(f);
ObjectOutputStreamoos=newObjectOutputStream(fos);
oos.writeObject(ts);
oos.close();
FileInputStreamfis=newFileInputStream(f);//这里会报错,就是这有读的时候
ObjectInputStreamois=newObjectInputStream(fis);
TermSchele[]ts=(TermSchele[])ois.readObject();
ts[0].printInfo();
ts[0].input();
ois.close();
}
catch(ClassNotFoundExceptione){
System.out.println("不能读出对象");
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}
单独的object类
packageaction;
importjava.io.Serializable;
importjava.util.Arrays;
importjava.util.Scanner;
{
intsubjectNumber;
Stringsubject[];
publicvoidinput()
{
Scannersc=newScanner(System.in);
System.out.println("输入科目数量");
subjectNumber=sc.nextInt();
subject=newString[subjectNumber];
for(inti=0;i<subjectNumber;i++)
{
System.out.println("输入第"+(i+1)+"的科目名称");
subject[i]=sc.next();
}
}
publicvoidprintInfo(){
System.out.println(subjectNumber);
System.out.println(Arrays.toString(subject));
}
}
运行结果图