J2ME读取各种格式的文本文件
系统
2372 0
-
在J2ME中读取各种格式的文本文件
-
在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;
-
}
-
二,读取UTF-
8
格式
-
public
String read_UTF(String name)
-
{
-
String strReturn =
""
;
-
InputStream in =
null
;
-
byte
[] word_utf=
new
byte
[
1024
];
-
try
-
{
-
in = getClass().getResourceAsStream(name);
-
in.read(word_utf);
-
in.close();
-
strReturn=
new
String(word_utf,
"UTF-8"
);
-
}
-
catch
(Exception e)
-
{
-
System.out.println(
"readUTF Error:"
+e.toString());
-
}
-
finally
-
{
-
in =
null
;
-
}
-
return
strReturn;
-
}
-
三,读取Unicode big endian格式
-
读取Unicode big endian格式时,采用readChar()方法读取,所以存放时使用
char
数组存放.
-
注意:在文本的末尾加上
'$'
表示文本的结束.
-
另外代码第
10
行dis.skip(
2
)是略过文件头
2
个字符,如果用microsoft notepad保存的一定存在这两个头字符.
-
当然,可以使用UltraEdit可以先删掉这两个头字符,然后使用新建文件,复制粘贴,保存为其它格式.这样两个头字符就没了..
-
private
String read_Uni_b_e(String resource)
-
{
-
char
word_uni_b_e[]=
new
char
[
1024
];
-
String strReturn=
""
;
-
DataInputStream dis;
-
try
-
{
-
dis=
new
DataInputStream(getClass().getResourceAsStream(resource));
-
int
counter=
0
;
-
dis.skip(
2
);
-
char
temp;
-
while
(
true
)
-
{
-
temp=dis.readChar();
-
if
(temp==
'$'
)
-
break
;
-
word_uni_b_e[counter++]=temp;
-
}
-
dis.close();
-
strReturn=String.valueOf(word_uni_b_e,
0
,counter);
-
}
-
catch
(Exception e)
-
{
-
System.out.println(
"read_Uni_b_e error!"
+e.getMessage());
-
}
-
finally
-
{
-
dis=
null
;
-
}
-
return
strReturn;
-
}
J2ME读取各种格式的文本文件
更多文章、技术交流、商务合作、联系博主
微信扫码或搜索:z360901061
微信扫一扫加我为好友
QQ号联系: 360901061
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。
【本文对您有帮助就好】元