J2ME读取各种格式的文本文件

系统 1803 0

J2ME读取各种格式的文本文件

Java代码 复制代码
  1. 在J2ME中读取各种格式的文本文件   
  2.   在J2ME开发过程中,我们经常会把一个文字信息保存在txt格式的文本文件中做为资源.这样便于修改和管理.那么读取它们对于一些刚接触j2me的朋友会有些困难.前几天研究了下,看了一些兄弟的文章和代码,总结出 3 种方法分别读取Unicode,UTF- 8 ,Unicode big endian格式的文件...本文没考虑读取的效率问题.   
  3.   这三种方法都能读取中文和英文字符.用来存放的数组长度视文本长度而定....   
  4.   另外还有一些只能读取英文字符的方法就不列举出来了.   
  5.   一,读取Unicode格式   
  6.     private  String read_Uni(String resource)   
  7.    {   
  8.     byte  word_uni[]= new   byte [ 1024 ];   
  9.    String strReturn= "" ;   
  10.    InputStream is;   
  11.     try   
  12.    {   
  13.    is=getClass().getResourceAsStream(resource);   
  14.    is.read(word_uni);   
  15.    is.close();   
  16.    StringBuffer stringbuffer =  new  StringBuffer( "" );   
  17.     for  ( int  j =  0 ; j < word_uni.length; )   
  18.    {   
  19.     int  k = word_uni[j++];  //注意在这个地方进行了码制的转换   
  20.     if  (k <  0 )   
  21.    k +=  256 ;   
  22.     int  l = word_uni[j++];   
  23.     if  (l <  0 )   
  24.    l +=  256 ;   
  25.     char  c = ( char ) (k + (l <<  8 ));  //把高位和低位数组装起来   
  26.    stringbuffer.append(c);   
  27.    }   
  28.    strReturn=stringbuffer.toString();   
  29.    }   
  30.     catch (IOException e)   
  31.    {   
  32.    e.printStackTrace();   
  33.    }   
  34.     finally   
  35.    {   
  36.    is= null ;   
  37.    }   
  38.     return  strReturn;   
  39.    }   
  40.   二,读取UTF- 8 格式   
  41.     public  String read_UTF(String name)   
  42.    {   
  43.    String strReturn =  "" ;   
  44.    InputStream in =  null ;   
  45.     byte [] word_utf=  new   byte [ 1024 ];   
  46.     try   
  47.    {   
  48.    in = getClass().getResourceAsStream(name);   
  49.    in.read(word_utf);   
  50.    in.close();   
  51.    strReturn= new  String(word_utf, "UTF-8" );   
  52.    }   
  53.     catch (Exception e)   
  54.    {   
  55.    System.out.println( "readUTF Error:" +e.toString());   
  56.    }   
  57.     finally   
  58.    {   
  59.    in =  null ;   
  60.    }   
  61.     return  strReturn;   
  62.    }   
  63.   三,读取Unicode big endian格式   
  64.   读取Unicode big endian格式时,采用readChar()方法读取,所以存放时使用 char 数组存放.   
  65.   注意:在文本的末尾加上 '$' 表示文本的结束.   
  66.   另外代码第 10 行dis.skip( 2 )是略过文件头 2 个字符,如果用microsoft notepad保存的一定存在这两个头字符.   
  67.   当然,可以使用UltraEdit可以先删掉这两个头字符,然后使用新建文件,复制粘贴,保存为其它格式.这样两个头字符就没了..   
  68.     private  String read_Uni_b_e(String resource)   
  69.    {   
  70.     char  word_uni_b_e[]= new   char [ 1024 ];   
  71.    String strReturn= "" ;   
  72.    DataInputStream dis;   
  73.     try   
  74.    {   
  75.    dis= new  DataInputStream(getClass().getResourceAsStream(resource));   
  76.     int  counter= 0 ;   
  77.    dis.skip( 2 );   
  78.     char  temp;   
  79.     while ( true )   
  80.    {   
  81.    temp=dis.readChar();   
  82.     if (temp== '$' )   
  83.     break ;   
  84.    word_uni_b_e[counter++]=temp;   
  85.    }   
  86.    dis.close();   
  87.    strReturn=String.valueOf(word_uni_b_e, 0 ,counter);   
  88.    }   
  89.     catch (Exception e)   
  90.    {   
  91.    System.out.println( "read_Uni_b_e error!" +e.getMessage());   
  92.    }   
  93.     finally   
  94.    {   
  95.    dis= null ;   
  96.    }   
  97.     return  strReturn;   
  98.    } 

J2ME读取各种格式的文本文件


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论