Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition

JAVA Micro Edition Низкоуровневое программирование мобильных телефонов.

Ответ
 
Опции темы
Старый 17.02.2009, 17:55   #1
Spiderman
Знающий
 
Аватар для Spiderman
 
Регистрация: 28.07.2008
Адрес: Киев
Сообщений: 228
Написано 61 полезных сообщений
(для 191 пользователей)
Плохо Чтение и запись файлов

Всем привет!

Начну с того, что на javе пишу всего около двух недель так что вопрос будет начального уровня.

Необходимо прочитать локацию побайтово из файла. Нашел несколько примеров чтения из файла, но все они огрызаются. Например:

public static byte [] loadFileAsBytes((
File file)throws IOException
{
byte [] result==new byte [(int)file.length()];
loadFileAsBytes(file,result);
return result;
}
}
f.close();
}
Компиляция матерится на классе File и всем, что относится к считыванию. Подскажите что я не так делаю, может в мобильных приложениях это делается как-то подругому...
__________________
Тяжела жизнь программиста: радость находки своего бага всегда омрачает осознание собственной тупости...
(Offline)
 
Ответить с цитированием
Старый 17.02.2009, 22:37   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Чтение и запись файлов

Не, в java так не делается.
Читай для примера описание работы с jsr75 (javax.microedition.io.file), хотя еще надо учесть, что у разных производителей телефонов свои специфические API для работы с ФС.
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 00:21   #3
Spiderman
Знающий
 
Аватар для Spiderman
 
Регистрация: 28.07.2008
Адрес: Киев
Сообщений: 228
Написано 61 полезных сообщений
(для 191 пользователей)
Ответ: Чтение и запись файлов

Хорошо, перефразирую свой вопрос:

Как лучше реализовать чтение данных о локациях (к примеру массив байт 20х20), таких локаций 10-ки. Может класс массивов создать и читать оттуда?
__________________
Тяжела жизнь программиста: радость находки своего бага всегда омрачает осознание собственной тупости...
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 00:27   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Чтение и запись файлов

Так, стоп. Для начала, откуда планируется читать данные - из ФС или из ресурса?
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 11:26   #5
Spiderman
Знающий
 
Аватар для Spiderman
 
Регистрация: 28.07.2008
Адрес: Киев
Сообщений: 228
Написано 61 полезных сообщений
(для 191 пользователей)
Ответ: Чтение и запись файлов

Мне все равно. Я в java пока ребенок так что чем проще тем лучше. Думаю, не мне пока знать откуда удобнее считывать данные о локации.

Мне кажется, что проще всего сформировать отдельный класс в котором будут двухмерные массивы локаций (т.е. просто набивать вручную) и передавать главному массиву i-й элемент, где i будет номером локации
__________________
Тяжела жизнь программиста: радость находки своего бага всегда омрачает осознание собственной тупости...
(Offline)
 
Ответить с цитированием
Старый 18.02.2009, 18:51   #6
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Чтение и запись файлов

Я мобильником начал пользоваться раньше компа, поэтому всё в нём перелазил, перепробовал. Когда сел за комп, уже знал многие тонкости той же Java, хотя не знал самого языка. Например, уже знал, что из файловой системы так просто файл не считать, во-первых, у всех мобил разное АПИ (правда, я тогда этого слова не знал), а во-вторых, мобилы борются за сохранность данных от несертифицированных приложений (вылазит окошко подтверждения). Из ресурса же считать файл просто. Ещё занимался ресурсозаменением, менял картинки, текстовые ресурсы, мелодии. Это ещё было во времена, когда PaintCAD не умел сохранять рисунки в png. Не беда. Я сохранял в gif, переименовывал в png, засовывал в приложение и оно работало (по крайней мере у меня на сименсе). Очень интересно видеть иногда людей, которые разбираются в компах, в программировании, но когда дело доходит до телефонов - это тёмный лес для них, и напротив, видеть ламеров, у которых порой нет компа, но которые знают гораздо больше меня о устройстве телефонов и JVM. =)
(Offline)
 
Ответить с цитированием
Старый 20.02.2009, 13:12   #7
Spiderman
Знающий
 
Аватар для Spiderman
 
Регистрация: 28.07.2008
Адрес: Киев
Сообщений: 228
Написано 61 полезных сообщений
(для 191 пользователей)
Ответ: Чтение и запись файлов

Примерчик чтения ресурса в студию!
И еще где можно эти ресы сконструировать?
__________________
Тяжела жизнь программиста: радость находки своего бага всегда омрачает осознание собственной тупости...
(Offline)
 
Ответить с цитированием
Старый 20.02.2009, 13:29   #8
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Чтение и запись файлов

Тебе ресурс как надо считать? В байтовый массив? В строку?
(Offline)
 
Ответить с цитированием
Старый 20.02.2009, 13:46   #9
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Чтение и запись файлов

// Открываем ресурс data.txt
InputStream is=getClass().getResourceAsStream("/data.txt");
// Теперь можно читать из потока is
// Например, нужно считать 5 байт в массив
// Создаём массив
byte[] by=null;
// Инициализируем массив с пятью ячейками
by=new byte[5];
// Считываем из потока в массив 5 байт начиная с нулевой ячейки
is.read(by,0,5);
// Создаём строковую переменную
String str="";
// Теперь считаем из потока ещё 5 байт, но теперь в строку
for(int i=0;i<5;i++){
  
str=str+(char)is.read();
}
// Не забываем закрыть поток
is.close(); 
Если ресурс прочитали до конца и пытаться прочитать дальше, то is.read() будет возвращать -1. По умолчанию is.read() возвращает int, но можно на лету переделать тип в char, как в примере выше (char)by.read().

Обычно, если нужно просто считать ресурс в строку, то используют StringBuffer, а потом из него берут строку. Код выглядит примерно так:

StringBuffer s=new StringBuffer();
int b;
String str;
InputStream is=getClass().getResourceAsStream("/data.txt");
while((
b=is.read())!=-1s.append((char)b);
is.close();
str=s.toString(); 
Текст считывается и приводится к юникоду самой джавой и все символы будут имеют вид ASCII, то есть русские буквы не будут выглядеть русскими. Для этого нужно перекодировать самому. Тут на форуме эта тема обсуждалась несколько раз.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Spiderman (20.02.2009)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение, и запись в файл rangel Основной форум 2 05.12.2009 14:50
Запись в файл и чтение из него в режиме реального времени. ArtemkA 2D-программирование 12 06.07.2009 22:19
Чтение ini cfg и прочих конфигурационных файлов tormoz Полезные функции 19 21.01.2009 12:43
Запись\чтение PAK файла в Blitz3D GetMan FAQ 2 26.03.2007 16:21
GuitarPro4 мона ли сделать редактор midi файлов или хотяб чтение музыки из текстового carmageddonist Программирование 3 17.11.2006 19:35


Часовой пояс GMT +4, время: 21:24.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com