0

基本的なクライアントとサーバーを実装しました。クライアントはサーバーに画像を送信でき、サーバーはそれらを保存しますが、複数のファイルを保存するjava方法sockets がわかりません。現時点では、クライアントから受信したファイルを保存するために次のコードを使用しています

while(true)
    {
        Socket connectionSocket = serverSocket.accept();
        try (DataInputStream receivedFromClient = new DataInputStream(connectionSocket.getInputStream());
                FileOutputStream saveToServer = new FileOutputStream("files/file.jpg"))
        {    
            int i;
            while ((i = receivedFromClient.read()) > -1)
            {
                saveToServer.write(i);
            }
        }
    }

これは、1つのファイルを保存する方法であり、ファイルはサーバーが受信する新しいファイルによって上書きされます。クライアントが送信する複数のファイルを保存したいのですが、どうすればよいですか?また、受信するファイルの名前をどのように設定しますか?

4

1 に答える 1

1

このコードブロックが存在するメソッドにファイル名引数を追加して、ファイル名を渡すことができるようにします。または、必要に応じて、静的カウンターを使用してファイル名を自動インクリメントします。

問題は、ここでハードコーディングされているため、毎回同じファイル名を使用していることです。

FileOutputStream saveToServer = new FileOutputStream("files/file.jpg"))

代わりに、FileOutputStreamに渡す文字列は可変である必要があります。

FileOutputStream saveToServer = new FileOutputStream(yourStringVariable))
于 2012-12-18T13:55:48.283 に答える