Как я могу загрузить файл в папки приложения?

Мой код позволяет сохранить только загруженный файл на SD-карту, как сохранить загрузку в самом приложении?

Код:

URL url = new URL(aurl[0]);
URLConnection conexion = url.openConnection();
conexion.connect();

int lenghtOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);

InputStream input = new BufferedInputStream(url.openStream());
FileOutputStream fos = openFileOutput("try.pdf", Context.MODE_PRIVATE);

byte data[] = new byte[1024];

long total = 0;

    while ((count = input.read(data)) != -1) {
        total += count;
        publishProgress(""+(int)((total*100)/lenghtOfFile));
        fos.write(data, 0, count);
    }

    fos.flush();
    fos.close();
    input.close();
} catch (Exception e) {}
return null;

}

Стоит только поменять этот путь на другой?


person jlopez    schedule 27.06.2012    source источник


Ответы (2)


Согласно документу Android.

Вы можете сохранять файлы прямо во внутренней памяти устройства. По умолчанию файлы, сохраненные во внутреннем хранилище, являются частными для вашего приложения, и другие приложения не могут получить к ним доступ (и пользователь). Когда пользователь удаляет ваше приложение, эти файлы удаляются.

String FILENAME = "hello_file";
String string = "hello world!";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
person rajpara    schedule 27.06.2012
comment
вы можете написать fos.write(string.getBytes()); внутри цикла while, и, согласно вашей логике, вы должны реализовать приведенный выше код - person rajpara; 27.06.2012
comment
В вашем примере это должно содержать строку String? - person jlopez; 27.06.2012
comment
Ладно, спасибо, я кажется понял, что вы хотите мне сказать, но проблема в том, что файл сначала придется скачать, а тут похоже, что код для уже скачанного файла. - person jlopez; 27.06.2012
comment
вам нужно взять данные из inputsteam и записать их в outputstream вот и все - person rajpara; 27.06.2012
comment
Спасибо за ваше терпение со мной, я обновил свой код. Вы можете видеть выше, я попробую посмотреть, работает ли это - person jlopez; 27.06.2012

how could save the download within the application itself?

В любом случае вам нужно прояснить, что это значит, если вы имеете в виду, что хотите сохранить его в папке Raw или Assets, тогда это невозможно. Вы можете сохранить файл в каталоге данных.

openFileOutput("car.pdf",mode)

режим может быть private,world_redable,world_writable

person Vipul    schedule 27.06.2012
comment
Я обновил свой код, моя часть кода должна быть заменена вашей? или это бесполезно и надо начинать заново? - person jlopez; 27.06.2012