File to Byte[]

Интерфейс, диалоги, темы, стили, меню
Ответить
Артем Дегтев
Сообщения: 74
Зарегистрирован: 27 янв 2014, 00:05

File to Byte[]

Сообщение Артем Дегтев » 31 мар 2014, 12:36

Если кто знает, то подскажите как перевести большой файл в массив байт что бы не было OOM. файл примерно 100 Мб.

AliMan
Сообщения: 34
Зарегистрирован: 18 мар 2014, 19:11

Re: File to Byte[]

Сообщение AliMan » 31 мар 2014, 12:55

Need more information. Где будешь брать файл? что с массивом дальше делать собрался?

Артем Дегтев
Сообщения: 74
Зарегистрирован: 27 янв 2014, 00:05

Re: File to Byte[]

Сообщение Артем Дегтев » 31 мар 2014, 13:15

AliMan писал(а):Need more information. Где будешь брать файл? что с массивом дальше делать собрался?
Файл с SD. Массив нужно отправить на сервер.

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: File to Byte[]

Сообщение mdzht » 31 мар 2014, 13:32

Артем Дегтев писал(а): Файл с SD. Массив нужно отправить на сервер.
Google
«Life is too short to spend rewriting code»

Артем Дегтев
Сообщения: 74
Зарегистрирован: 27 янв 2014, 00:05

Re: File to Byte[]

Сообщение Артем Дегтев » 31 мар 2014, 14:22

mdzht писал(а):
Артем Дегтев писал(а): Файл с SD. Массив нужно отправить на сервер.
Google
Эти способы переробывал ранее.... у меня файл 120 МБ, и эти все способы выдают ООМ.

AliMan
Сообщения: 34
Зарегистрирован: 18 мар 2014, 19:11

Re: File to Byte[]

Сообщение AliMan » 31 мар 2014, 14:23

Артем Дегтев писал(а):Если кто знает, то подскажите как перевести большой файл в массив байт что бы не было OOM. файл примерно 100 Мб.
Тогда твой подход в корне не верен. ты прикинь в памяти будет хранится 100мб !!! да и еще для преобразования память нужна будет. (Ну если надо то через  FileInputStream fileInputStream = new FileInputStream(sourceFile); и его метод "read").
А по нормальному файл нужно грузить как то так http://androidexample.com/Upload_File_T ... 3&aaid=106

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: File to Byte[]

Сообщение mdzht » 31 мар 2014, 15:03

Артем Дегтев писал(а):
mdzht писал(а):
Артем Дегтев писал(а): Файл с SD. Массив нужно отправить на сервер.
Google
Эти способы переробывал ранее.... у меня файл 120 МБ, и эти все способы выдают ООМ.
Android application has limited Heap Memory and which depend on devices. Currently most of the new devices has 64 but it could be more or less depend on Manufacturer. I have seen device come come with 128 MB heap Memory.

So what this really mean?

Its simply means that regardless of available physical memory your application is not allowed to grow more then allocated heap size.

From Android API level 11 you can request for additional memory by using manifest tag android:largeHeap="true" which will be double your heap size. That simply means if your devices has 64 you will get 128 and in case of 128 you will get 256. But this will not work for lower API version.

I am not exactly sure what is your requirement, but if you planning to send over HTTP then read file send data and read again. You can follow the same procedure for file IO also. Just to make sure not to use memory more then available heap size. Just to be extra cautious make sure you leave some room for application execution.
«Life is too short to spend rewriting code»

Ответить