`
juansusan
  • 浏览: 72424 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

J2ME读取本地Unicode编码的文本文件

阅读更多
import java.io.*;

import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class LoadText extends MIDlet implements CommandListener
{
private Display display;
private Form mainForm;
private TextField textField;
public void startApp()
{
   this.display = Display.getDisplay(this);
   this.mainForm = new Form("读取Unicode编码的文本文件");
   this.textField = new TextField("靠自己","hello",10240,TextField.ANY);
   this.mainForm.addCommand(new Command("离开", Command.EXIT, 0));
   String str = loadText("/cunwang(Unicode).txt");
   this.textField.setString(str);
   this.mainForm.append(this.textField);
   this.mainForm.setCommandListener(this);
   this.display.setCurrent(mainForm);

}


public void pauseApp()
{


public void destroyApp(boolean unconditional)
{
}



public void commandAction(Command c, Displayable s)
{
   this.notifyDestroyed();
}


//读取Unicode编码的文本文件 (没问题)
private String loadText(String resource)
{
byte[] word_uni = new byte[1024];
String strReturn = "";
InputStream is;//此抽象类是表示字节输入流的所有类的超类
try
{
   is = this.getClass().getResourceAsStream(resource);
   is.read(word_uni);//从输入流中读取一定数量的字节并将其存储在缓冲区字节数组 b 中。
   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;
}


}



/*

cunwang(Unicode).txt文件内容如下:
----------------------------------
春望
杜甫
国破山河在,城春草木深。
感时花溅泪,恨别鸟惊心。
烽火连三月,家书抵万金。
白头搔更短,浑欲不胜簪。
----------------------------------
注意在记事本中保存时类型要选择Unicode
把这个文件保存到项的res目录下,如:
C:\WTK25\apps\LoadTxt_pro\res

*/
分享到:
评论
1 楼 wishwingliao 2009-01-16  
转我的是吧:)

http://hi.baidu.com/wishwingliao/blog/item/0a129f5003ff59648535240a.html

相关推荐

    J2ME读取文本文件的一些操作方法

    以下方法`read_Uni`读取以Unicode编码的文本文件: ```java private String read_Uni(String resource) { byte word_uni[] = new byte[1024]; String strReturn = ""; InputStream is; try { is = getClass()....

    J2ME 文本本件阅读器

    1. **文件打开与浏览**:用户可以通过内置的文件浏览器选择本地存储的UTF-8文本文件进行阅读。J2ME的文件系统访问接口被用来实现这一功能,可能包括KVM(KJava虚拟机)提供的FileConnection API。 2. **文本渲染**...

    j2me开发指南第三讲

    J2ME支持Unicode编码,但需要正确配置才能读取和写入Unicode文件。Java的InputStreamReader 和 OutputStreamWriter 类可用于指定字符编码。在J2ME环境中,开发者需要特别注意内存限制,可能需要分块读取和写入大文件...

    j2me点阵字库

    1. **字库加载**:在J2ME程序启动时,需要加载点阵字库文件,这通常通过解析二进制或文本格式的字库数据来实现。开发者需要编写代码来读取字库文件,并将数据转换为内部可以使用的结构。 2. **字符映射**:每个字符...

    j2me网络编程大全

    示例代码中通过`unicodeTogb2312()`方法实现了从Unicode到GB2312的编码转换。 ```java public static String unicodeTogb2312(String s) { if (s == null) { return ""; } if (s.equals("")) { return s; } ...

    j2me手机邮箱示例程序源码

    解决方法包括使用支持Unicode的编码方式,如UTF-8,以及正确处理字符编码转换。此外,还可以优化数据传输和内存管理,例如分批下载大邮件,及时关闭不必要的流,以提高程序效率。 六、安全与隐私 在实际应用中,...

    点整字在J2ME上的实现代码

    这些数据通常存储在二进制或文本文件中,每个字符对应一个特定的位图。生成器允许用户选择字体样式、大小以及支持的字符集,然后生成相应的点阵数据。在J2ME应用中,开发人员会将这些数据加载到程序中,以便在需要时...

    J2ME 字符型转化成字节数组

    - **文件读写**:在读写文件时,可能需要将字符转换为字节数组存储,或者从字节数组中恢复出字符数据。 - **加密解密**:在加密算法中,通常会涉及对字节数组的操作,因此需要将原始字符数据转换为字节数组。 - **...

    Java选择题武汉大学JAVA基础.pdf

    24. Java中的Unicode编码 Unicode是用于表示文本的标准字符集,每个Unicode字符都用16位数字表示。 25. Java中的数字字面量 包括整数字面量(如1024)、浮点数字面量(如3.***),以及它们的前缀和后缀(如0x表示...

    java培训总结

    - 存储键值对,常用于读写配置文件。 #### 十二、输入输出(I/O) - **File类**: - 操作文件和目录。 - **基本的流类**: - 如`InputStream`、`OutputStream`等。 - **Reader和Writer**: - 字符流。 - **Charset类...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

Global site tag (gtag.js) - Google Analytics