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));
}
}
運行結果圖