| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
龙腾教程网  
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
 
  您当前位置:您现在的位置: 龙腾软件教程网 >> 文章中心 >> 应用程序 >> 移动程序开发 >> J2ME教程 >> 文章正文>>>>>> 
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;
}

以上3种方法测试平台:

Operation System: Microsoft Windows XP Professional Service Pack 1

Emulator: Sun Wireless ToolKit 2.2 beta DefaultColorPhone


上一篇:
  • 上一篇文章:
  • 下一篇
  • 下一篇文章: 没有了
  • 收藏此文到百度搜藏 百度搜藏| 新浪VIvi| 365key| Younote| 博采中心| 你好BLOG| 亿友网摘| 和讯网摘|
    相关文章    
    J2ME编程中使用Nokia的中文模拟器
    J2me实现任何角度的图片旋转
    J2ME 进行联网
    J2ME应用程序架构模型
    J2ME实现手机图片上传技巧
    j2me网络程序中移动资费页面的处理
    J2ME中访问手机本地电话本
     
     
     
    最新文章
    普通文章 J2ME中读取各种格式的文本文件最新文章
    普通文章 J2ME编程中使用Nokia的中文模拟器最新文章
    普通文章 Nokia WML Studio Dreamweaver轻最新文章
    普通文章 Dreamweaver制作简单的网页下拉菜最新文章
    普通文章 Photoshop绘制时尚3D立体文字最新文章
    普通文章 Excel公式错误值的解决方法最新文章
    普通文章 Windows Vista九则加速操作技巧最新文章
    普通文章 迅雷中提取卡巴斯基的key 技巧最新文章
    普通文章 PhotoShop绘制云海观音石像奇景最新文章
    普通文章 Autodesk 3ds Max 2009新功能初探最新文章
     
    热门文章
    推荐文章 Illustrator手绘古典游戏美女图片
    推荐文章 Photoshop绘制奇幻的宇宙幻想图
    推荐文章 Painter手绘逼真的百合花
     
     
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 

    版权所有2006-2008 龙腾教程网