-1
私はFTP転送の実装のためのプログラムでサーバからクライアントへのファイルのリストを送信しようとしましたが、初めて正常に動作していますが、2回目にコマンドリストファイルを送信するとエラーが発生します。ここでスレッド "main"の例外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