Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2010, 12:11   #1
Klyaksa
Пользователь
 
Аватар для Klyaksa
 
Регистрация: 08.04.2010
Сообщений: 16
По умолчанию чтение из *.dat

помогите кто чем может. мне нужно прочитать в j2me данные из *.dat файла. в нем хранятся иконки.
Klyaksa вне форума Ответить с цитированием
Старый 10.04.2010, 13:07   #2
Pliks
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 46
По умолчанию

Советую разобрать игрушку - Ancient empires 2. Там как раз в подробностях все описано, все что нужно по этой теме. Импорт через метод getResousAsStream.

Будут вопросы - пиши в личку.
Runtime.getRuntime().gc() ява - один из самых чистых языков.
Pliks вне форума Ответить с цитированием
Старый 11.04.2010, 18:48   #3
OrcXCyber
Web-программер
Пользователь
 
Аватар для OrcXCyber
 
Регистрация: 05.11.2009
Сообщений: 49
По умолчанию

Код:
String getText(String path)  
           //path - путь до файла, например, "icons/splash.ico" :)
{
  DataInputStream dis = new DataInputStream(getClass().getResourceAsStream(path)); //создаем поток входных данных
  StringBuffer strBuff = new StringBuffer(); //создаем строковый буфер т.е.
                  //там будут храниться все строки

  int ch = 0; //для считывания строк

  try  //сюда ставим опасный код.. опасный - потому что может не выполниться.
  {
     while ((ch = dis.read()) != -1) //если ошибок не было
     {
       strBuff.append((char) ((ch >= 0xC0  && ch <= 0xFF) ? (ch + 0x350) : ch)); //считываем русские буквы в windows-1251 кодировке
     } 

     dis.close(); //закрываемся
  }
  catch (Exception e)  //ловим ошибку исключения
  {  
     System.err.println("ERROR: " + e);
  }

  return strBuff.toString(); //возвращаем строковый поток строкой
}

можно и так, если текст в латинице 

strBuff.append((char) ch);
если помог кликни на весы
OrcXCyber вне форума Ответить с цитированием
Старый 16.04.2010, 18:12   #4
igorsolkin
Пользователь
 
Регистрация: 24.03.2010
Сообщений: 18
Восклицание

Цитата:
Сообщение от Klyaksa Посмотреть сообщение
помогите кто чем может. мне нужно прочитать в j2me данные из *.dat файла. в нем хранятся иконки.
Сперва уточни, в каком формате именно хранятся иконки, PNG то или ICO, ещё какой формат, потому что под иконками понимают всё маленькое. Потом. Желательно этот DAT выложить, чтобы изучить можно было. Для изучения файлов любого типа потребуется HEX-редактор, самый удобный, пожалуй, WinHEX.
А так, разговор пустой, надо больше конкретики. Потому что dat бывает всякий, это лишь расширение, что внутри-неизвестно, иконки тоже бывают разные по формату.
igorsolkin вне форума Ответить с цитированием
Старый 19.04.2010, 07:47   #5
Klyaksa
Пользователь
 
Аватар для Klyaksa
 
Регистрация: 08.04.2010
Сообщений: 16
По умолчанию

вообще суть тут в том, что для уменьшения размера приложения я хочу засунуть все иконки в *.dat файл и в приложении их доставать от туда. Вот и возник вопрос как это делать (((
Klyaksa вне форума Ответить с цитированием
Старый 21.04.2010, 08:05   #6
igorsolkin
Пользователь
 
Регистрация: 24.03.2010
Сообщений: 18
По умолчанию

Нет, что ты задумала, так не делается. Ты бы сразу сказала. Всё намного проще.
Для чтения очереди значков (графики вообще с одинаковой высотой или шириной) поступают следующим образом. Берут, склеивают эти иконки в одну такую длиннющую, а потом, при запуске Мидлета она нарезается на требуемые. Если ты не знаешь, как это сделать, вот небольшой кусочек кода из моего широкоизвестного MobilePump, надеюсь, ты поймёшь. Если нет, спрашивай.

Код:
        try {
            UIIcon = Image.createImage("/ui/icons/" + iconGroupName); // Загрузка изображения из ресурсов
            int imageWidth = UIIcon.getWidth(); // Получение ширины
            int imageHeight = UIIcon.getHeight();// ... высоты
            int imagesCount = imageWidth / imageHeight; // Количество значков 
            Image[] iconGroup = new Image[imagesCount]; // Создаём массив, куда будем откладывать нарезанные значки
            for (int c = 0; c < imagesCount; c++) {
                iconGroup[c] = UIIcon.subImage(imageHeight * c, 0, imageHeight, imageHeight, true); // Нарезаем 
            }
        } catch (IOException ex) {
            ex.printStackTrace(); // Обработчик исключений, если картинка не найдётся 
        }
igorsolkin вне форума Ответить с цитированием
Старый 13.05.2010, 03:06   #7
Pliks
Пользователь
 
Регистрация: 20.11.2009
Сообщений: 46
По умолчанию

Все делается. Нужно буферезировать, а затем заливать в файл.
Runtime.getRuntime().gc() ява - один из самых чистых языков.
Pliks вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
dat файл Fottak Помощь студентам 2 15.02.2010 15:29
BlockRead -чтение dat файла element Общие вопросы Delphi 2 15.06.2009 14:21
Чтение, чтение и еще раз чтение Alex Cones Общие вопросы Delphi 3 07.06.2009 15:28
Работа с файлом dat Mega_lamerok Общие вопросы Delphi 6 10.04.2009 19:31
dat файл ben95 Свободное общение 2 24.03.2008 09:12