私がする必要があるのは、DataStreams を使用して複数のファイルを送信することです。ファイルの名前を送信してから、ファイルのバイトを送信することでこれを行っています。ただし、未定の数のファイルを送信する必要があります。これがDataOutputStream
コードです。
out.writeUTF(path);
out.write(Files.readAllBytes(file.toPath()));
送信する必要があるファイルごとにそれを行います。しかし、 で正しく読む方法がわかりませんDataInputStream
。これは私がこれまでに持っているものです。
while (in.available() != 0) {
String path = in.readUTF();
byte bytes = in.readByte();
}
1バイトしか読み取っていないため、明らかに機能しません。しかし、すべてのバイトを読み取らせる方法がわかりません。いくつかのファイルが送信されているため、available()
すべてのファイルの最後が読み取られたときにのみ 0 になると思います。どんな助けでも大歓迎です。
言い忘れていましたが、メモリ不足にならずに大きなファイルを送信できるようにしたいのですが、うまくいかないと思います。バッファを使用する必要があると思いますが、ファイルでそれをサポートしているクラスがわかりません。