Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Русские символы byte, Запись русских символов (int - > byte) 
:(
    Опции темы
Invisible
Дата 19.3.2008, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 26.5.2005

Репутация: нет
Всего: нет



Уже час копаюсь на форуме и не могу найти того что мне надо ... =( 
Записываю символы в файл, потом пытаюсь их считывать, не получается считывать записанные русские символы. При чтениее получаю код (int) ... потом при переводу его в byte и выводе получаю 0 , проблема в кодировке поля ? 

Код

DataOutputStream dataOut = new DataOutputStream(new FileOutputStream("tempfile.txt"));
   System.out.println("Playfair:");
   String passphrase = "расдваpassword&^%$##@";
   byte passbytes[] = passphrase.getBytes("utf-8");
   dataOut.writeBytes(passphrase);

   DataInputStream dataIn = new DataInputStream(new FileInputStream("tempfile.txt"));
   int FileLength = dataIn.available();
   int[] store = new int[FileLength];
   for(int counter = 0; counter < FileLength; counter++) {
      store[counter] = dataIn.read();
   }

   DataOutputStream dataOut2 = new DataOutputStream(new FileOutputStream("tempfile2.txt"));
   dataOut2.writeByte((byte)store[1]);

PM MAIL   Вверх
teg
Дата 19.3.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



из кода не видно, где Вы пытаетесь считать байты. Записано в файл правильно (только флаша не вижу), а вот чтение - совсем не то, причём от и до. 

Если уж обязательно работать с байтами (а это совсем не обязательно), то нужно примерно так:
Код

byte store[] = new byte[200];
int n = 0;
while (true) {
    int b = dataIn.read();
    if (b < 0) {
         break;
    }
    store[n] = (byte) b;
}
String s = new String(store, "UTF-8");

PM MAIL ICQ   Вверх
Invisible
Дата 19.3.2008, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 26.5.2005

Репутация: нет
Всего: нет



Спасибо , попробовал как ты написал, русский не распознаётся всёравно =) а так работает 
Что делать с русским не знаю =( допустим 
"тест" отображается и пишется в файл как "B5AB"
PM MAIL   Вверх
Invisible
Дата 19.3.2008, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 26.5.2005

Репутация: нет
Всего: нет



проблема решилась .. использовал 
dataOut.writeUTF(passphrase);
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.