Чтение файла в J2ME - PullRequest
       27

Чтение файла в J2ME

0 голосов
/ 21 февраля 2011

Я очень расстроился из-за этого простого сегмента кода:

FileConnection fc = (FileConnection) Connector.open("file:///root1/photos/2.png");
System.out.println(is.available());
byte[] fileBytes = new byte[is.available()];
int sizef = is.read(fileBytes);
System.out.println("filesize:"+sizef);

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

Я использую j2mewtk SDK в NetBeans 6.9.Я попытался удалить, установить wtk & netbeans.

Другое дело, что каждый раз, когда я запускаю эмулятор, он создает C:\Users\Mahsruf\j2mewtk\2.5.2\appdb\temp.DefaultColorPhone6 новое местоположение, такое как temp.DefaultColorPhone1,2,3,4 и т. Д.

Если я использую jme SDK 3.0 в netbeans, размер файла по-прежнему равен 0, но теперьс дополнительной строкой в ​​окне вывода: [WARN] [rms ] javacall_file_open: _wopen failed for: C:\Users\Mahsruf\javame-sdk\3.0\work\0\appdb\_delete_notify.dat

Что я делаю не так?

1 Ответ

1 голос
/ 21 февраля 2011

Это не проблема, связанная с кодированием. Если несколько экземпляров одного и того же скина эмулятора запускаются одновременно, инструментарий генерирует уникальные пути к файлам для каждого из них. Например, в Windows экземпляры DefaultColorPhone могут иметь путь к файлу: workdir \ appdb \ temp.DefaultColorPhone1, workdir \ appdb \ temp.DefaultColorPhone2 и т. Д.

Решение: Файл workdir \ appdb \ DefaultColorPhone \ in.use отслеживает количество корней хранилища, помеченных как используемые. В случае сбоя эмулятора необходимо удалить файл in.use

...