0

簡単な「FTP」プログラムを書こうとしたところ、突然エラーが発生しました。したがって、これはクライアントとサーバーを備えたネットワークであり、サーバーはクライアントからアップロードされたファイルを保存します。サーバーからファイルをダウンロードする可能性もあります。しかし、ファイルをアップロードすると、空のファイルとしてサーバー ディレクトリに保存されます。誰かがコードのエラーを見つけるのを手伝ってくれますか?

こちらがクライアント

String nameOfFileToUp = fileFromFileChooser.getName();
System.out.println("fileChooserfile name= " + fileFromFileChooser.getName());
System.out.println("File path= " + fileFromFileChooser.getPath());
pw.println(nameOfFileToUp);
File sendFile = new File(fileFromFileChooser.getPath());
FileInputStream fis = new FileInputStream(sendFile);
int size =(int) fileFromFileChooser.length();
byte[] buffer = new byte[size+1];
int bytes = 0;
while((bytes = fis.read(buffer)) != -1)
{
    out.write(buffer,0,bytes);
}
fis.close();

pw は PrintWriter です。

そしてサーバー

FileOutputStream fos = new FileOutputStream(f);
DataOutputStream dops = new DataOutputStream(fos);

while(done)
{
    fc = in.readLine();
    if(fc == null)
    {
        done = false;
    }
    else
    {
        dops.writeChars(fc);
    }
 }
fos.close();

誰でも助けることができますか?お願いします

4

1 に答える 1

0

出力ストリームをフラッシュ/閉じる必要があります。

また、サーバーは「行」単位で読み取るのではなく、バイト単位で読み取る必要があります (クライアント コードと同様)。

于 2013-03-29T14:45:05.570 に答える