私は、URL に空のスペースが含まれる場合があるプロジェクトに取り組んでいます (常にではありません)。
私のコード:
try {
URL url = new URL(stringURL);
URLConnection conexion = url.openConnection();
conexion.connect();
// downlod the file
InputStream input = new BufferedInputStream(url.openStream(), 8192);
OutputStream output = new FileOutputStream(fullPath.toString());
byte data[] = new byte[1024];
while ((count = input.read(data)) != -1) {
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
e.printStackTrace();
}
失敗するのは次の行です: InputStream input = new BufferedInputStream(url.openStream(), 8192);
a: java.io.FileNotFoundException.
特定の行をエンコードしようとしましたが、キッカーは次のとおりです。サーバーはファイルを見つけるために空のスペース " " を必要とするため、何らかの形で空のスペースが必要です。Firefox ブラウザーを使用すると、ファイル (jpg) を見つけることができます。どんな助けでも大歓迎です。
編集の更新:さて、URL のホスト部分の後のすべてのビットを utf-8 にエンコードしようとしました。空白には + と %20 の両方を使用してみました。これでファイルを DL できますが、ファイルに問題があるため読み取ることができません。
update2 の編集: %20 で間違いを犯しましたが、動作します。