Создание текстовых ресурсов для приложения MIDP и способы их загрузки во время выполнения. Этот метод безопасен в Юникоде и подходит для всех языков. Код времени выполнения небольшой, быстрый и использует относительно мало памяти.
Создание источника текста
اَللّٰهُمَّ اِنِّىْ اَسْئَلُكَ رِزْقًاوَّاسِعًاطَيِّبًامِنْ رِزْقِكَ
مَرْحَبًا
Процесс начинается с создания текстового файла. Когда файл загружен, каждая строка становится отдельным объектом String, поэтому вы можете создать файл наподобие:
Это должно быть в формате UTF-8. В Windows вы можете создавать файлы UTF-8 в Блокноте. Убедитесь, что вы используете Сохранить как ... и выберите кодировку UTF-8.
Сделать имя arb.utf8
Это необходимо преобразовать в формат, который легко читается приложением MIDP. MIDP не предоставляет удобных способов чтения текстовых файлов, таких как BufferedReader J2SE. Поддержка Unicode также может быть проблемой при преобразовании между байтами и символами. Самый простой способ прочитать текст - использовать DataInput.readUTF (). Но чтобы использовать это, нам нужно написать текст, используя DataOutput.writeUTF ().
Ниже приведена простая программа командной строки J2SE, которая будет читать файл .uft8, сохраненный из блокнота, и создавать файл .res для добавления в JAR.
import java.io.*;
import java.util.*;
public class TextConverter {
public static void main(String[] args) {
if (args.length == 1) {
String language = args[0];
List<String> text = new Vector<String>();
try {
// read text from Notepad UTF-8 file
InputStream in = new FileInputStream(language + ".utf8");
try {
BufferedReader bufin = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String s;
while ( (s = bufin.readLine()) != null ) {
// remove formatting character added by Notepad
s = s.replaceAll("\ufffe", "");
text.add(s);
}
} finally {
in.close();
}
// write it for easy reading in J2ME
OutputStream out = new FileOutputStream(language + ".res");
DataOutputStream dout = new DataOutputStream(out);
try {
// first item is the number of strings
dout.writeShort(text.size());
// then the string themselves
for (String s: text) {
dout.writeUTF(s);
}
} finally {
dout.close();
}
} catch (Exception e) {
System.err.println("TextConverter: " + e);
}
} else {
System.err.println("syntax: TextConverter <language-code>");
}
}
}
Чтобы преобразовать arb.utf8 в arb.res, запустите конвертер как:
java TextConverter arb
Использование текста во время выполнения
Поместите файл .res в JAR.
В приложении MIDP текст можно прочитать с помощью этого метода:
public String[] loadText(String resName) throws IOException {
String[] text;
InputStream in = getClass().getResourceAsStream(resName);
try {
DataInputStream din = new DataInputStream(in);
int size = din.readShort();
text = new String[size];
for (int i = 0; i < size; i++) {
text[i] = din.readUTF();
}
} finally {
in.close();
}
return text;
}
Загрузите и используйте текст, подобный этому:
String[] text = loadText("arb.res");
System.out.println("my arabic word from arb.res file ::"+text[0]+" second from arb.res file ::"+text[1]);
Надеюсь, это поможет вам. Спасибо