Я пытаюсь прочитать двоичный файл из URLConnection. Когда я тестирую его с текстовым файлом, он работает нормально, но для двоичных файлов это не так. Я использую следующий тип mime на сервере, когда файл отправляется:Чтение двоичного файла из URLConnection
application/octet-stream
Но пока ничего не работает. Это код, который я использую, чтобы получить файл:
file = File.createTempFile("tempfile", ".bin");
file.deleteOnExit();
URL url = new URL("http://somedomain.com/image.gif");
URLConnection connection = url.openConnection();
BufferedReader input = new BufferedReader(new InputStreamReader(connection.getInputStream()));
Writer writer = new OutputStreamWriter(new FileOutputStream(file));
int c;
while((c = input.read()) != -1) {
writer.write((char)c);
}
writer.close();
input.close();
Тест 'n> 0' не нужен. Согласно javadocs, единственный случай, когда нуль можно вернуть, - это когда 'buffer.length' равно нулю. –
... и в любом случае запись нулевой длины безвредна. – EJP
Ты спас мой день :) –