Разделить / разбить файл на части в J2ME - PullRequest
1 голос
/ 30 сентября 2010

Мне нужно разделить аудиофайл или файл большого изображения в J2ME перед его загрузкой. Как я могу разбить / разбить файл на части в JavaME.

Ответы [ 2 ]

0 голосов
/ 01 октября 2010

DataInputStream dis = FileConnection.getDataInputStream ();

байт [] буфер = новый байт [2048];

int count;

int total = 0;

Vector v = new Vector ();

ByteArrayOutputStream baos = new ByteArrayOutputStream ();

while ((count = dis.read (buffer))> = 0)

{

всего + = количество;

baos.write (буфер, 0, количество);

если (всего> 100000)

{

baos.close();

byte[] data = baos.toByteArray();

v.addElement( data );

baos = new ByteArrayOutputStream();
}

}

Итак, у вас будет Vector из нескольких байтовых массивов. И вы можете отправить его по одному.

Или считайте все данные файла в один байтовый массив и разместите эти данные по частям со смещением начальной позиции отправки данных.

0 голосов
/ 30 сентября 2010

Какой API для загрузки файлов вы используете?

1) Если API-интерфейс FileConnection позволяет загружать данные по блокам. В этом случае нет проблем.

2) Если вы используете Class.getResourceAsStream (String pathInsideJar), ​​у вас будут проблемы. Большинство KVM полностью загружают ресурс перед возвратом контроля к вашему коду. Поэтому я вижу один способ - разбить большой файл на несколько маленьких файлов перед созданием jar.

...