Тому, кто работал с Property в нормальной Джаве и вероятно пытался делать тоже самое в J2ME, скорее всего понятна проблема:
Нужных Объектов в J2ME просто нет, а решение предложеное на sun сервере в откомпилированом состоянии весит чуть ли не 4 кила (иногда это 10% от всего ресурса памяти который вообще доступен).
Задача простого чтения переменной из файла в этом случае вообще не стоит свеч. Если же в вашем текстовом файле 5-6 языков по килу каждый, вообще становится хреново.
Я делаю один файл, где загоняю текст в бинарном виде в виде Unicode, так же в Unicode и читаю по определенным позициях. Просто как две копейки. Опробовано на 18 языках (японский, корейский, мандарин и т.д - в том числе).
Чтение из файла
/*
* PropLoader.java
*
* Created on July 10, 2002, 9:07 AM
* Простой пример как прочитать текст в Unicode из файла
*/
/**
* Simple Property file.
*
*
* $Log: PropLoader.java,v $
* Revision 1.1 2002/07/30 13:20:22 Alexei Prosvirin
* added to CVS
*
*
*
*
* @author Alexei Prosvirin
*
* @version $Id: PropLoader.java,v 1.1 2002/07/30 13:20:22 alexei Exp $
*/
import java.io.*;
public class PropLoader {
static int NumTexts = 0;
static StringBuffer[] strings = new StringBuffer [NumTexts];
public PropLoader(int int_n) {
//int_n - колличество эллементов, доступных в текстовом файле
NumTexts = int_n;
try {
InputStream is;
DataInputStream file;
is = getClass().getResourceAsStream ("/text.dat");
file = new DataInputStream (is);
for (int i = 0; i < NumTexts; ++i)
strings[i] = new StringBuffer(file.readUTF());
is.close ();
}
catch (Exception e) {
e.printStackTrace();
}
}
public static String getS(int int_n){
return String.valueOf(strings[int_n]);
}
}
Запись в файл
/*
* Saver.java
*
* Created on September 30, 2002, 11:10 AM
*/
/**
*
* @author Alexei Prosvirin
* @version
*/
import java.io.*;
public class Saver extends Object {
/** Creates new Saver */
public Saver() {
}
/**
* @param args the command line arguments
*/
public static void main (String args[]) {
saveText("alexei");
}
public static void saveText(String str_text){
String str_f = "Continue";
try{
DataOutputStream dos =
new DataOutputStream(new FileOutputStream("/text.dat"));
dos.writeUTF("Score");
dos.writeUTF("Exit");
dos.writeUTF("Back");
dos.writeUTF("Play");
dos.writeUTF("Help");
dos.close();
}
catch(Exception e){
System.out.println(e);
}
}
}