在J2ME开发过程中,我们经常会把一个文字信息保存在txt格式的文本文件中做为资源。这样便于修改和治理。那么读取它们对于一些刚接触j2me的朋友会有些困难。前几天研究了下,看了一些兄弟的文章和代码,总结出3种方法分别读取Unicode,UTF-8,Unicode big endian格式的文件...本文没考虑读取的效率问题。
这三种方法都能读取中文和英文字符.用来存放的数组长度视文本长度而定....
另外还有一些只能读取英文字符的方法就不列举出来了.
一、读取Unicode格式
PRivate String read_Uni(String resource) { byte Word_uni[]=new byte[1024]; String strReturn=""; InputStream is; try { is=getClass().getResourceAsStream(resource); is.read(word_uni); is.close(); StringBuffer stringbuffer = new StringBuffer(""); for (int j = 0; j < word_uni.length; ) { int k = word_uni[j++]; //注重在这个地方进行了码制的转换 if (k < 0) k += 256; int l = word_uni[j++]; if (l < 0) l += 256; char c = (char) (k + (l << 8)); //把高位和低位数组装起来 stringbuffer.append(c); } strReturn=stringbuffer.toString(); } catch(IOException e) { e.printStackTrace(); } finally { is=null; } return strReturn; }
(图片较大,请拉动滚动条观看) 读取Unicode big endian格式时,采用readChar()方法读取,所以存放时使用char数组存放。