⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text读取方法.java

📁 J2me中文本的读取方法
💻 JAVA
字号:
一,读取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; 
        } 





		根本不必要那么麻烦的,有个InputStreamReader类,专门来处理字符流的 

InputStreamReader   isr=new   InputStreamReader(getClass().getResourceAsStream(resource)); 

然后就可以一个一个来读取字符了




这个问题找我就对了,以下是我写的操作手机上TXT文件的实例源代码: 
在手机中,可以存放TXT文件或支持TXT文件,我们可以利用J2ME中的流进行操作,把TXT文件中内容读出来!对于内容相对固定的应用,这是一个不错的方案!代码如下: 

package   screen; 
import   javax.microedition.lcdui.*; 
import   java.io.*; 
public   class   TextBoxTest   extends   Form   implements   CommandListener{ 

private   Display   display; 
private   Displayable   parent; 
private   Command   back,ok; 
private   TextBox   tb; 
private   String   txt; 
private   String   fileName; 

public   TextBoxTest(Display   d,Displayable   p,String   f) 
{ 
super( "TextBox演示程序 "); 
display=d; 
parent=p; 
fileName=f; 
back=new   Command( "返回菜单 ",Command.BACK,1); 
ok=new   Command( "开始演示 ",Command.SCREEN,2); 
txt=read_UTF(fileName); 
tb=new   TextBox( "读取TXT文件 ",txt,txt.length(),TextField.ANY); 
addCommand(back); 
tb.addCommand(back); 
addCommand(ok); 
setCommandListener(this); 
tb.setCommandListener(this); 
} 

public   void   commandAction(Command   action,Displayable   dpa){ 
if(action==back){ 
display.setCurrent(parent); 
} 
else   if(action==ok){ 
display.setCurrent(tb); 
} 
} 

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; 
        } 

} 
查看演示可访问我的个人网站http://wcp.fh668.com/article.asp,有一个演示J2ME高层显示控件的手机应用软件,下载后安装在手机里,就可以演示了,还可以看源码!




public String getTextByUTF(String name) {
  String strReturn = "";
  int ic;
  InputStream in = null;
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  DataOutputStream dos = new DataOutputStream(baos);
  byte[] myData;
  byte[] buffer = new byte[1024];
  try {
   in = getClass().getResourceAsStream(name);
   if (in != null) {
    while ((ic = in.read(buffer)) > 0) {
     dos.write(buffer, 0, ic);
    }
    myData = baos.toByteArray();
    strReturn = new String(myData, "UTF-8");
    in.close();
   }
   dos.close();
   baos.close();
  } catch (Exception e) {
   System.out.println("getTextByUTF Error:" + e.toString());
  } finally {
   in = null;
   dos = null;
   baos = null;
  }
  return strReturn;
 }  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -