Я проверил множество фрагментов кода, попытался с буфером и без него, и я не могу загрузить весь файл на SD-карту. Код, который я использую в настоящее время:Android - проблема с загрузкой файла - неполный файл
try {
url = new URL("http://mywebsite.com/directory/");
} catch (MalformedURLException e1) { }
String filename = "someKindOfFile.jpg"; // this won't be .jpg in future
File folder = new File(PATH); // TODO: add checking if folder exist
if (folder.mkdir()) Log.i("MKDIR", "Folder created");
else Log.i("MKDIR", "Folder not created");
File file = new File(folder, filename);
try {
conn = url.openConnection();
is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
FileOutputStream fos = new FileOutputStream(file);
fos.write(baf.toByteArray());
fos.close();
is.close();
} catch (IOException e) { }
Этот код создает каталог на SD-карте, но загружает только 77 байт файлов. Что может быть проблемой?
Как вы можете загрузить только 77 бит? –
@ chirag-shag 77 байт - это размер файла в DDMS Emulator SD card file explorer – yosh
Каков ожидаемый результат? Вы пытались загрузить один и тот же контент с помощью инструмента, такого как wget или curl, для сравнения с тем, что загружает ваш код? Каково содержимое созданного вами 77-байтового файла? – RivieraKid