-1
我正在爲一個FTP傳輸實現的程序,當我試圖發送服務器中的文件列表從服務器到客戶端,它第一次工作正常,但如果我第二次發送命令列表文件,它會拋出低於錯誤的錯誤。線程「主」異常java.io.StreamCorruptedException:無效的流頭:7371007E
Exception in thread "main" `java.io.StreamCorruptedException`: invalid stream header: 7371007E
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:808 )
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:301)
at transferfileClient.ListFiles(ListClient.java:142)
at transferfileClient.displayMenu(ListClient.java:206)
at ListClient.main(ListClient.java:15)
這裏是我的服務器端代碼:
public void Listfiles() throws Exception
{
ArrayList<String> MyList = new ArrayList<String>();
File folder = new File("//home//cci100//CN");
File[] listOfFiles = folder.listFiles();
String NameOfFiles;
String temp;
int ch;
for (int i = 0; i < listOfFiles.length; i++) {
if(listOfFiles[i].isFile()){
MyList.add(listOfFiles[i].getName());
}
}
try{
objectOutput.writeObject(MyList);
}
catch (IOException e)
{
e.printStackTrace();
}
}
這裏是我的客戶端代碼:
@SuppressWarnings("unchecked")
public void ListFiles() throws Exception{
ArrayList<String> MyListc = new ArrayList<String>();
File f=new File("//home//cci100//CN");
FileOutputStream fout=new FileOutputStream(f);
objectInput = new ObjectInputStream(ClientSoc.getInputStream());
try {
Object object = objectInput.readObject();
MyListc = (ArrayList<String>) object;
int s=MyListc.size();
for (int i = 0; i < MyListc.size(); i++) {
System.out.println(MyListc.get(i));
}
}
catch (ClassNotFoundException e){
e.printStackTrace();
}
}
我修復了你瘋狂的格式。不要這樣做。請使用一致且正確的格式和縮進樣式。否則難以辨認。 [tag:socket.io]與它完全沒有關係。不要盲目標籤。 – EJP
對不起,我正在學習。 – Nuthann92
這不僅僅是當你在這裏發佈時,而是在寫作時,然後閱讀你自己的代碼,這對你自己和我們的好。你不會理解沒有正確格式化的代碼,或者試圖理解它需要額外的浪費。 – EJP