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
*/
分享到:
相关推荐
以下方法`read_Uni`读取以Unicode编码的文本文件: ```java private String read_Uni(String resource) { byte word_uni[] = new byte[1024]; String strReturn = ""; InputStream is; try { is = getClass()....
1. **文件打开与浏览**:用户可以通过内置的文件浏览器选择本地存储的UTF-8文本文件进行阅读。J2ME的文件系统访问接口被用来实现这一功能,可能包括KVM(KJava虚拟机)提供的FileConnection API。 2. **文本渲染**...
J2ME支持Unicode编码,但需要正确配置才能读取和写入Unicode文件。Java的InputStreamReader 和 OutputStreamWriter 类可用于指定字符编码。在J2ME环境中,开发者需要特别注意内存限制,可能需要分块读取和写入大文件...
1. **字库加载**:在J2ME程序启动时,需要加载点阵字库文件,这通常通过解析二进制或文本格式的字库数据来实现。开发者需要编写代码来读取字库文件,并将数据转换为内部可以使用的结构。 2. **字符映射**:每个字符...
示例代码中通过`unicodeTogb2312()`方法实现了从Unicode到GB2312的编码转换。 ```java public static String unicodeTogb2312(String s) { if (s == null) { return ""; } if (s.equals("")) { return s; } ...
解决方法包括使用支持Unicode的编码方式,如UTF-8,以及正确处理字符编码转换。此外,还可以优化数据传输和内存管理,例如分批下载大邮件,及时关闭不必要的流,以提高程序效率。 六、安全与隐私 在实际应用中,...
这些数据通常存储在二进制或文本文件中,每个字符对应一个特定的位图。生成器允许用户选择字体样式、大小以及支持的字符集,然后生成相应的点阵数据。在J2ME应用中,开发人员会将这些数据加载到程序中,以便在需要时...
- **文件读写**:在读写文件时,可能需要将字符转换为字节数组存储,或者从字节数组中恢复出字符数据。 - **加密解密**:在加密算法中,通常会涉及对字节数组的操作,因此需要将原始字符数据转换为字节数组。 - **...
24. Java中的Unicode编码 Unicode是用于表示文本的标准字符集,每个Unicode字符都用16位数字表示。 25. Java中的数字字面量 包括整数字面量(如1024)、浮点数字面量(如3.***),以及它们的前缀和后缀(如0x表示...
- 存储键值对,常用于读写配置文件。 #### 十二、输入输出(I/O) - **File类**: - 操作文件和目录。 - **基本的流类**: - 如`InputStream`、`OutputStream`等。 - **Reader和Writer**: - 字符流。 - **Charset类...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...