- 浏览: 210479 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
fenglongcen:
java可以写测试脚本吗?
linux 通过脚本执行java程序 -
chensss2008:
我代为回答2楼的问题,呵呵,因为我也遇到了这个问题。使用adm ...
SVNManager使用介绍 -
小诗诗:
我想问一下怎么使用“服务器配置管理员”怎么登陆啊!!!! ...
SVNManager使用介绍 -
sbcqw93:
能创建文件夹吗?比如说:http://127.0.0.1/sv ...
SVNManager使用介绍 -
energykey:
yhjhoo 写道好像没有一个外部的jar包,请教以下如何在l ...
linux 通过脚本执行java程序
J2ME从服务器解析并读取xml文件,其实跟在本地读取xml文件相似,只是我们在下载服务器的xml时,需要注意将xml转码为“UTF-8”,服务器的xml文件跟我上次写的xiaochao.xml文件内容一样,所以这里就不再写了,大家可以去看上一期的博客,代码如下:
package com.mopietek; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import javax.microedition.io.Connector; import javax.microedition.io.HttpConnection; import javax.microedition.lcdui.Choice; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.List; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.rms.RecordEnumeration; import javax.microedition.rms.RecordStore; import javax.microedition.rms.RecordStoreException; import javax.microedition.rms.RecordStoreNotOpenException; import org.kxml2.io.KXmlParser; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; public class KXMLliao extends MIDlet implements CommandListener{ private Display display; private Form form; private List choose = null; private Command exitCommand = new Command("退出",Command.EXIT,1); private Command viewCommand = new Command("浏览",Command.SCREEN,1); private Command delCommand = new Command("删除",Command.SCREEN,2); RecordStore rs = null; public KXmlParser parser = new KXmlParser(); public KXMLliao() { display = Display.getDisplay(this); rs = openRS("XMLRS"); //创建记录存储 } //读取网络上的xml文件 public void loadText() throws XmlPullParserException{ try{ String URL = "http://dev.mopietek.net:8080/waptest03/xiaochao.xml"; HttpConnection httpConnection = (HttpConnection) Connector.open(URL); parser.setInput(new InputStreamReader(httpConnection.openInputStream(),"UTF-8")); }catch(IOException e){ e.printStackTrace(); } } protected void startApp() throws MIDletStateChangeException { try{ Interpret(); }catch(XmlPullParserException xpp){ } display.setCurrent(form); } //解析XML文件 public void Interpret() throws XmlPullParserException{ form = new Form("解析XML"); form.addCommand(exitCommand); form.addCommand(viewCommand); form.setCommandListener(this); String str3; this.loadText(); //调用这个方法来加载网络上的XML文件 int eventType = parser.getEventType(); try{ while(eventType != XmlPullParser.END_DOCUMENT){ //如果当前标签为开始标签,且标签内容为person的话 if(eventType == XmlPullParser.START_TAG && parser.getName().equals("person")){ str3 = parser.getAttributeValue(0); addNewData(str3); //转到下一个标签 eventType = parser.nextTag(); //如果是ID标签 if(parser.getName().equals("name")){ //提取name标签的内容 str3 = parser.nextText(); addNewData(str3); } //转到下一个标签 eventType = parser.nextTag(); //如果是Text标签 if(parser.getName().equals("attack")){ //提取attack标签的内容 str3 = parser.nextText(); addNewData(str3); } } eventType = parser.next(); } }catch(IOException ioe){ ioe.printStackTrace(); } form.append("解析XML文件完毕并且以存到RMS中!"+"\n" +"按浏览键可以浏览全部记录"); } //加入记录到记录存储 //各个记录由字节数组表示,所以加入记录就意味着:把字节数组加入到记录存储 //synchronized代表同步,即同一时刻,保证只有一个线程对RecordStore进行操作 public synchronized void addNewData(String record){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream daos = new DataOutputStream(baos); try{ daos.writeUTF(record); }catch(IOException ioe){ ioe.printStackTrace(); } //把接收到的数据放到bytearr数组中 byte[] bytearr = baos.toByteArray(); try{ //加入记录到记录存储,该方法有三个参数,第一个是要加入的字节数组 //第二个是字节数组内的offset(位移),第三个指要加入的字节数目 rs.addRecord(bytearr, 0, bytearr.length); System.out.println("加入到RMS中的数据:" + baos.toString()); }catch(RecordStoreException rse){ System.out.println(rse); rse.printStackTrace(); } } public void commandAction(Command c, Displayable d) { if(c == exitCommand){ try { destroyApp(false); } catch (MIDletStateChangeException e) { e.printStackTrace(); } notifyDestroyed(); } else if(c == viewCommand){ System.out.println("准备调用相关函数浏览全部记录"); this.listItems(); } else if(c == delCommand){ System.out.println("准备调用相关函数删除全部记录"); try { this.closeRS(); } catch (RecordStoreNotOpenException e) { e.printStackTrace(); } catch (RecordStoreException e) { e.printStackTrace(); } } } private RecordStore openRS(String fileName) { try{ //打开fileName记录存储,第二个参数true代表如果记录存储不存在的话就创建新的记录存储 //如果为false值则引发RecordStoreNotFoundException异常 rs = RecordStore.openRecordStore(fileName, true); System.out.println("已创建" + fileName + "记录存储"); }catch(RecordStoreException rse){ rse.printStackTrace(); } return rs; } //遍历记录存储中的记录 public synchronized RecordEnumeration enumerate() throws RecordStoreNotOpenException{ return rs.enumerateRecords(null, null, false); } //列出全部记录信息 public void listItems(){ choose = new List("全部记录",Choice.IMPLICIT); choose.addCommand(delCommand); choose.addCommand(exitCommand); choose.setCommandListener(this); try{ RecordEnumeration re = enumerate(); while(re.hasNextElement()){ String theList = new String(re.nextRecord(),"UTF-8"); choose.append(theList, null); } }catch(Exception e){ e.printStackTrace(); } display.setCurrent(choose); } protected void destroyApp(boolean unconditional) throws MIDletStateChangeException { System.out.println("关闭记录存储"); try{ closeRS(); }catch(Exception e){e.printStackTrace();} } protected void pauseApp() { System.out.println("准备关闭记录存储"); display.setCurrent(null); form = null; try{ closeRS(); }catch(Exception e){ e.printStackTrace(); } } //关闭记录存储 public void closeRS() throws RecordStoreNotOpenException,RecordStoreException{ String fileName = rs.getName(); //检测记录存储中的记录总数,如果记录存储时空的则删除这个记录存储 if(rs.getNumRecords() == 0){ rs.closeRecordStore(); rs.deleteRecordStore(fileName); System.out.println("已关闭" + fileName +"记录存储"); }else{ rs.closeRecordStore(); System.out.println("已关闭" + fileName +"记录存储"); } } }
发表评论
-
Lwuit---小细节疑难杂症整理
2010-05-04 17:41 14201、textArea 显示文本内容,在部分手机上无法显示全部内 ... -
Lwuit布局管理
2010-05-04 15:40 1612布局管理器中一个比较特殊的管理器CoordinateLa ... -
J2ME Socket编程
2010-04-25 23:35 4069Socket是套接字,它是基于TCP协议的传输。 在J2ME ... -
Alert用法
2010-04-08 18:21 3868在J2ME中,关于Alert类是用来向用户发出警告信息,一般A ... -
Midlet与Servlet传递Cookie
2010-03-31 11:47 2234Cookie在Java ME平台中没有得到支持,因此要想维持客 ... -
J2ME手机编程中使用字体与游戏键值
2010-03-25 10:02 1391J2me中关于字体Font类的介绍: Font fon ... -
J2me低级UI界面中Canvas类与GameCanvas类
2010-03-23 10:18 3350关于MIDlet类中destroyApp( ... -
J2me语言国际化
2010-03-04 16:39 1571J2me手机开发在早期的WTK没用jsr 238包,所以程序要 ... -
J2ME下载并读取服务器txt文件
2010-03-04 11:56 2031J2ME下载并读取服务器txt文件,我用的公司的服务器,大家如 ... -
J2ME解析并读取xml文件
2010-03-03 17:37 5735用KXML解析读取xml文本 首先需要kxml2-2.3.0. ... -
J2ME手机本地文件上传服务器
2010-02-23 10:20 2690J2ME手机本地存储文件的上传,核心代码如下: pac ... -
读取手机本地图片和文本文件(Lwuit版)
2010-02-22 13:21 2507读取手机存储文件的核心代码: package com.m ... -
J2ME实现从服务器端下载文件(J2me for HttpConnection)
2010-02-07 21:54 2593J2ME实现从服务器端下载文件: 我以下载服务器文件并在手机客 ... -
Lwuit中关于TextField限制输入为数字的内容代码
2010-01-28 10:50 2023Lwuit中关于TextField限制输入为数字的内容代码 ... -
Lwuit 钟表ClockWidget小应用程序
2010-01-26 12:59 1594J2ME关于Lwuit应用的钟表ClockWidget程序 ... -
Lwuit实现九宫图特效程序
2010-01-25 12:16 2166最近在网上看到很多九宫图的程序说明,但大多数是转载的,一些知识 ... -
J2ME中关于Lwuit的标签的综合使用
2010-01-22 18:02 2441J2ME中关于Lwuit的标签的综合使用 由于我使用的主题对 ... -
Lwuit中关于TextArea、TabbedPane组件的使用说明
2010-01-21 16:15 2162TextArea组件的使用说明代码如下: package ... -
Lwuit中CheckBox、ComboBox组件的使用说明
2010-01-21 15:53 2384这几天刚刚开始接触LWUIT,前两天从网上搜到一兄台的博客写的 ... -
J2ME配置Lwuit
2010-01-20 11:34 2149使用Eclipse加入Lwuit jar包配置方法 1.先 ...
相关推荐
2. Servlet通过`request.getInputStream()`读取请求体数据,解析出参数。 3. 调用`checkData()`方法,检查参数是否为空。 4. 如果参数非空,使用JDBC连接MySQL数据库,执行查询操作。 5. 处理查询结果,可能包括遍历...
8. **XML解析**:邮件头信息可能以XML格式存储和传输,因此教程中提到了XML解析。`HeadParser`类可能实现了这一功能,允许程序读取和理解邮件头部信息。 9. **用户界面设计**:J2ME的`javax.microedition.lcdui`包...
6. 服务器返回JAR文件,设备开始接收并存储。 7. JAR文件接收完成后,设备自动或手动启动安装过程。 除了上述基础设置,搭建完整的OTA服务器还需考虑更多实际问题,例如: - **安全性**:确保下载过程安全,防止...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax...
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写...
- **XML**:用于数据交换和配置文件,解析器如DOM、SAX、StaX等。 - **分页和效率**:分页查询减少内存占用,优化SQL语句提高性能。 - **Struts**:MVC框架,提供动作调度和表单验证等。 - **XML在项目中的作用*...
- 表单验证、SSL、MVC模式、XML解析、分页、编码规范、多线程、文件加密、软件生命周期等都是面试中常见的技术点。 这些只是Java面试宝典中的一部分内容,实际面试中还会涉及到更多Java语言特性、框架、设计模式...
- `java.io.File`类用于文件和目录的管理,`listFiles()`列出目录下所有文件和子目录,`exists()`判断文件是否存在,`read()`和`write()`进行文件读写。 5. **多态**: - 实现多态主要通过继承、重载(方法名相同...
- XML用于数据交换和配置,XML Schema定义数据结构,DOM和SAX解析XML。 - 分页通常结合数据库查询实现,效率优化包括缓存、索引等。 - Struts的工作流程包括Action、ActionForm、Dispatcher Servlet等组件交互。 ...
- XML用于数据交换和配置,解析XML可使用DOM、SAX或StaX。 这只是Java面试题的一部分,完整的面试可能会涵盖更多主题,如设计模式、并发编程、框架(如Spring、Hibernate)等。面试题的解答能够展示面试者的技能...
3. 通过request对象读取客户端请求,通过request.getParameter()访问CGI变量,使用pageContext对象获取JSP文件的路径。 4. Cookie用于客户端持久化数据,Session用于服务器端跟踪用户状态。Session基于cookie,但不...
PULL 方式常常用在 J2ME 对于节点处理比较好,类似 SAX 方式,同样很节省内存,在 J2ME 中我们经常使用的 KXML 库来解析。 ListView 的优化方案包括:如果自定义适配器,那么在 getView 方法中要考虑方法传进来的...
以上仅是部分要点,完整的面试准备还需要深入理解每个主题的细节,例如MVC架构、XML解析、EJB生命周期、并发编程、网络协议、GUI设计、软件工程等方面的知识。对于JSP和Servlet,理解请求处理、响应生成、会话管理、...