1

クライアントサーバーアプリを開発しています。クライアントからサーバーにファイルを送信します。サーバーでのファイルの読み取りに関する私のコードは次のとおりです。

    private void readfile() throws Exception{
            String filename="data.xml";
    FileOutputStream fos = new FileOutputStream(filename);
    BufferedOutputStream out = new BufferedOutputStream(fos);
    BufferedReader buff_read = new BufferedReader(new InputStreamReader(input,"UTF-8"));
    byte[] buffer=new byte[1024];
    String line;
    int count;
    while((count=input.read(buffer))>0){
        fos.write(buffer,0,count);
        fos.flush();
    }
    System.out.println("het");
    fos.close();
}

しかし、while ループから抜け出せません。コンソール画面に文字列「het」が表示されますが、メモ帳++でファイルdata.xmlを読み取ることができます。これは、ファイルが正常に送信されたことを意味します。この問題を解決するのを手伝ってくれませんか。私の貧弱な英語で申し訳ありません。

4

2 に答える 2

0

read() メソッドは、ストリームの最後に -1 を返します。これは、ソケットの場合、ピアが接続を閉じたことを意味します。-1 を取得していない場合、ピアは接続を閉じていません。

于 2013-10-26T23:39:09.443 に答える