宿題で助けが必要です。どんな助けでも大歓迎です。小さなファイルでも問題なく送信できます。しかし、送信しようとすると、1 GB のファイル バイト配列が OutOfMemoryError を送信するので、サーバーからクライアントにファイルを送信するためのより良いソリューションが必要です。このコードを改善して大きなファイルを送信するにはどうすればよいですか。助けてください。
サーバーコード:
FileInputStream fis = new FileInputStream(file);
byte[] fileByte = new byte[fis.available()]; //This causes the problem.
bytesRead = fis.read(fileByte);
oos = new ObjectOutputStream(sock.getOutputStream());
oos.writeObject(fileByte);
クライアントコード:
ois = new ObjectInputStream(sock.getInputStream());
byte[] file = (byte[]) ois.readObject();
fos = new FileOutputStream(file);
fos.write(file);