私は本当にこれに夢中になります。
commons-net-3.1.jar ライブラリを使用して、一連のファイルを別の一連のサーバーに同時にアップロードする小さな Java (SDK 6 である必要があります) ツールを作成しています。主に.jpg画像で使用します。誰かが尋ねる前に、接続を BINARY_FILE_TYPE に設定しました:)
実行しようとすると、すべてがスムーズに進みますが、画像をアップロードした後、ファイルが途中で破損したかのように、画像に「小さな線」が表示されることがあります。
この小さなコードがすべての作業を行います。ファイルのアップロードを正しく維持するために、 os.write が失敗したときに最初のキャッチをどのように管理する必要があるかについての手がかりはありますか?
try {
InputStream is = new FileInputStream(rutaFichero);
OutputStream os = ftp.storeFileStream(nombreFichero);
byte buf[] = new byte[8192];
bytesRead = is.read(buf);
while ((bytesRead = is.read(buf)) != -1) {
try {
os.write(buf, 0, bytesRead);
} catch (IOException ioe) {
} catch (NullPointerException npe) {
}
}
is.close();
try {
os.close();
completado = ftp.completePendingCommand();
if (completado) {
} catch (NullPointerException npe) {}
}
興味本位で回線の調子が悪いのではないかと思い、数日転送してからファイルサイズを確認したところ…どれも一致しませんでした!なんと!?