java запись в файл кодировка

Это может быть связано с моим предыдущим вопросом (о том, как конвертировать «för» в «för»)

Итак, у меня есть файл, который я создаю в своем коде. Прямо сейчас я создаю это следующим кодом:

окончание (после цикла while)

Теперь проблема в том, что этот файл огромен, и я хочу (нужно) прыгнуть в него, не просматривая весь файл. Метод seek(long pos) для RandomAccessFile позволяет мне сделать это.

Вот моя проблема : символы в созданном мной файле, похоже, закодированы в UTF-8, и единственная информация, которую я получаю, когда ищу, — это позиция символа, к которой я хочу перейти. seek(long pos) с другой стороны, переходит в байтах, поэтому я не попадаю в нужное место, поскольку символ UTF-8 может содержать более одного байта.

Вот мой вопрос : могу ли я, когда я пишу файл, записать его вместо ISO-8859-15 (где символ является байтом)? Таким образом, seek(long pos) приведет меня в правильное положение. Или я должен вместо этого попытаться использовать альтернативу RandomAccessFile (есть ли альтернатива, где вы можете перейти к позиции символа?)

Д опустим, что нам необходимо записать в файле текст в кодировке UTF8 (Юникод). Например, мы хоотим записать текст на каком-нибудь экзотическом языке (китайский, арабский и другие). Несмотря на то, что в Java Юникод используется как кодировка по умолчанию, при манипулировании данными в этой кодировке нам необходимо всегда указывать ее явно.

Ниже показан пример записи в текстовый файл информации в Юникоде (на арабском языке).

В результате работы этой программы мы получаем файл следующего содержания:

—-и вот в главной программе при вызове не понимает строку вторую

Содержание

  1. 1 ответ 1
  2. Всё ещё ищете ответ? Посмотрите другие вопросы с метками java файлы кодировка запись или задайте свой вопрос.
  3. Похожие

1 ответ 1

Спустя три дня откопала решение:

Правда в настройках idea сделала обратно UTF-8, а не windows

Всё ещё ищете ответ? Посмотрите другие вопросы с метками java файлы кодировка запись или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий