J2ME中读取Unicode和UTF-8编码文件
一、读取Unicode文件
/**
* 读取Unicode编码文本文件
* @param resource String – 文件名
* @return String – Unicode文本
*/
public static String read_Uni(String resource) {
byte word_uni[] = new byte[1024];
String strReturn = null;
InputStream is;
try {
is = instance.getClass().getResourceAsStream(resource);
is.skip(2); // 跳过两个字节的文件头
is.read(word_uni);
is.close();
StringBuffer stringbuffer = new StringBuffer("");
for (int j = 0; j < word_uni.length; ) {
int l = word_uni[j++];
int h = word_uni[j++];
char c = (char) ((l & 0xff) | ((h << 8) & 0xff00));
stringbuffer.append(c);
}
strReturn = stringbuffer.toString();
} catch (IOException ex) {
System.out.println(ex);
} finally {
is = null;
}
return strReturn;
}
二、读取UTF-8文件
/**
* 读取UTF-8编码文本文件
* @param resource String – 文件名
* @return String – UTF-8文本
*/
public static String read_UTF(String resource) {
byte word_utf[] = new byte[1024];
String strReturn = null;
InputStream is;
try {
is = instance.getClass().getResourceAsStream(resource);
is.read(word_utf);
is.close();
strReturn = new String(word_utf, "UTF-8");
} catch (IOException ex) {
System.out.println(ex);
}
return strReturn;
}