私のアプリケーションでは、byte[] (シリアル化されたオブジェクト) を FTP サーバーにアップロードしましたが、これは完全に機能しています。ただし、ダウンロードしようとすると、配列の最初の部分 (3000 バイトなど) のみが正しく、残りはゼロで埋められます。
何が間違っているのかわかりません。助けていただければ幸いです。パッケージ org.apache.commons.net.* を使用しています
public static byte[] downloadBoard( String host, int port, String usr, String pwd) throws IOException {
FTPClient ftpClient = new FTPClient();
byte[] buf = new byte[20000];
try {
ftpClient.connect( host, port );
ftpClient.login( usr, pwd );
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
InputStream is = ftpClient.retrieveFileStream("asdf.board");
is.read(buf);
is.close();
ftpClient.completePendingCommand();
ftpClient.logout();
} finally {
ftpClient.disconnect();
}
return buf;
}