在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;
}
分享到:
相关推荐
本篇将详细介绍三种读取不同编码格式文本文件的方法:Unicode、UTF-8以及Unicode big endian。 1. 读取Unicode格式: 在Java中,Unicode是一种标准字符编码,它支持世界上大部分语言的字符。以下方法`read_Uni`读取...
《J2ME文本文件阅读器》是一款专为手机设计的应用程序,基于Java Micro Edition(J2ME)平台开发。J2ME是Java的一个轻量级版本,主要用于嵌入式设备,如早期的智能手机和平板电脑。这款阅读器旨在帮助用户在移动设备...
本文介绍了如何在J2ME平台上实现一个简单的文本阅读器,包括文本文件的格式要求、读取文本文件的关键技术以及具体的实现代码。通过这种方式,开发者可以为用户提供一种便捷的移动阅读体验,同时也可以进一步探索其他...
对于文本文件,可以使用`BufferedReader`和`PrintWriter`进行读写操作。例如,`BufferedReader`的`readLine()`方法用于逐行读取文件,`PrintWriter`的`println()`方法用于向文件写入一行文本。 对于二进制文件,`...
在Java 2 Micro Edition (J2ME) 中,开发手机应用程序时,有时我们需要处理文本文件,比如读取存储在手机内部或外部存储器上的TXT文档。J2ME并不像Java SE那样提供完整的文件系统访问API,但仍然可以利用内置的流...
2. **文件预览**:支持文本、图片等常见文件类型的预览。 3. **过滤和搜索**:允许用户按照文件类型或名称进行过滤和搜索。 4. **设置界面**:让用户自定义文件浏览器的行为,如默认打开的目录、排序方式等。 5. ...
这个系统的核心功能是读取文本文件并分析其中的数据,以供用户查询公交线路。我们将重点关注两个主要的技术点:一是如何在J2ME环境中读取TXT文件,二是如何对读取到的文本数据进行字符串分割。 首先,我们来看J2ME...
- **FileSystemModel**:这是J2ME中用于处理文件系统操作的类,可以获取目录内容、读取文件等。 - **事件处理**:为TreeView的节点添加点击事件监听器,当用户选择文件或目录时,执行相应的操作,如打开、复制、...
1. **字库加载**:在J2ME程序启动时,需要加载点阵字库文件,这通常通过解析二进制或文本格式的字库数据来实现。开发者需要编写代码来读取字库文件,并将数据转换为内部可以使用的结构。 2. **字符映射**:每个字符...
通过结合这个文本文件的内容,你可以得到更详细的实现指南。 总之,虽然J2ME的限制使得文件上传比桌面环境更具挑战性,但通过合理的编程策略和服务器配合,仍然可以实现这一功能。在实际项目中,可能需要根据设备的...
例如,使用`InputStreamReader`和`BufferedReader`读取文本文件: ```java InputStreamReader in = new InputStreamReader(conn.openInputStream()); BufferedReader reader = new BufferedReader(in); String ...
例如,若要打开一个名为"myText.txt"的文本文件,URL可能是"file:///store/0/myText.txt"。 对TXT文件的操作主要包括读取和写入。读取时,可以使用FileConnection的openInputStream()方法打开输入流,然后使用...
例如,`InputStreamReader`和`BufferedReader`组合使用可以从文件或网络流中读取文本。对于显示文本,J2ME使用的是用户界面组件,如` MIDP`(Mobile Information Device Profile)提供的`TextBox`或`Form`,它们可以...
J2ME 游戏的图形渲染通常基于 Graphics 类,它提供了绘制线条、形状、文本和位图的功能。通过更新屏幕并调用 Display.update() 或 repaint() 方法,可以实现游戏画面的动画效果。 六、输入处理 J2ME 提供了键盘和...
3. **XML文档流式处理**:SAX解析器按需读取XML文档,允许J2ME应用处理大型XML文件,而不会消耗大量内存。 4. **错误处理**:SAX解析器还会触发错误事件,允许开发者捕获并处理XML解析中的错误。 5. **实际应用**...
它提供了解析XML文档的能力,包括读取元素、属性、文本等,并且不需要DOM或SAX支持,这使得它在J2ME平台上具有较高的效率。 3. **XML解析**:在J2ME浏览器中,XML解析是关键部分,因为许多网页内容是以XML格式或者...
在无线J2ME设备上实现超文本传输协议主要涉及到的是如何使用Java Micro Edition (J2ME)技术在有限资源的移动设备上与Web服务器进行通信。J2ME是一种轻量级的Java平台,专为嵌入式设备如手机、PDA等设计,它包括了...
文件存储与读取** 游戏中的关卡信息可能保存在设备的非易失性存储中,如使用RecordStore API来持久化数据。RecordStore允许开发者在设备上创建、读取、更新和删除数据记录。 **6. 实验报告** 实验报告可能详细描述...
主要包括Form、ChoiceGroup、TextBox、Alert等基本组件,它们用于显示文本、选择项和接收用户输入。 4. **网络编程**: J2ME的Connector类提供了对HTTP、WAP和其他协议的支持,使得在移动设备上进行网络数据交换...
从给定的文件信息来看,我们探讨的主题是Java 2 Micro Edition(J2ME)以及在J2ME平台上开发游戏的资源分享。J2ME是一种针对嵌入式和移动设备的Java平台,它允许开发者创建运行在有限资源设备上的应用程序,如早期的...