设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>计算机毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
J2ME平台下文本阅读器的实现毕业论文
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

J2ME平台下文本阅读器的实现
摘要
本文利用J2ME技术开发了一个文本阅读器,实现了手机对文本文件的显示,给出了该程序的实现代码,并对其关键技术进行了详细阐述。
关键字
   J2ME 文本阅读器 Java 手机
The Implementation of Text File Reader Based on J2ME
Abstract
The paper presents a text file reader based on J2ME, make it possible that text file is displayed in mobile. It also gives the detail code of the application and illustrates its key technology.
Key Words
J2ME   text file reader    Java   Mobile

0引言
随着通讯技术的发展及手机的普及 ,人们正在不断地给手机增加新的功能 ,其中 ,使手机实现一般只有 PC机才具有的功能——下载各种程序并运行 ,是目前手机发展的一个重要方向。为此 ,人们提出了各种各样的解决方案 ,其中基于 JAVA的 J2 ME方案无疑是最引人注目的。
本文通过J2ME开发一个文本阅读器,该程序可下载到手机上,随时随地的进行阅读,这样就可以通过这种方式开发一些学习软件,使手机用户可有一个随身学习的工具书。由于J2ME不可以对手机中的文件进行读写,所以在开发本程序时,只能在程序打包时把文本文件作为资源文件加入到J2ME发布程序中。如果想读写手机上的文件,则要使用各手机商家提供的特定开发平台和专用的类来开发,下面就文本阅读器的关键技术进行说明。
1 J2ME文本阅读器中的文本格式
J2ME中文本文件的格式,为了便于程序的开发和在运行中的读写处理,对要处理的文本文件要进行一定格式的整理。本程序中的文本要求用纯文本即可,每章为一个独立的文件,每一章中均可为多段,在文本中加入的空格和各种符号都可在阅读时如实的显示出来。文件写好后将其存入相应项目文件夹下的res文件夹中,如本文中的阅读器的项目名为test,则可将文本文件存入test\res文件夹下。
本系统要阅读三章内容,所以制作了三个文本文件,分别命名为test1.txt、test2.txt、test3.txt,将三个文件存入test\res文件夹中,到此文本内容准备完成。
2读取文本文件的主要技术问题
在J2ME中如何读取文本文件的内容,在本系统中写了一个函数用来读取指定的文本文件,文本文件做为参数传给该函数,该函数的返回值为字符串类型,将文件的内容做为一个完整的字符串返回。在读取文件内容时用到的主要技术,使用InputStream类定义一个输入字节流对象in,使用ByteArrayOutputStream类定义一个内存数组输出字节流对象s,通过输入对象的in.read()方法来读取一个字节,将读出的字节通过s.write( )方法加入到s中,再使用s.toString()方法将内存转为字符串返回。读取文本文件的函数定义如下:
    private String myReadLine (String testFileName) {
        //函数头定义了函数的参数为文件名组成的字符串,返回值为一个字符串。
  InputStream  in = this.getClass().getResourceAsStream(testFileName);
        //由文件名参数来定义一个输入流对象变量in
    ByteArrayOutputStream  s;
    s = new ByteArrayOutputStream();  //产生内存数组输出字节流对象变量S
    try{
        int ch=0;
        ch=in.read();  //由输入流对象变量in的read方法以字节为单位来读取文件的内容,读取到文件尾时的值为-1。  
        while ( ch!= -1 ) {
          //如果未读到文件尾把读取的内容写入S变量中,并读取下一字节内容
                s.write( ch );
                ch=in.read();
            }
            in.close();  //关闭输入流对象。
        }  catch (IOException ioe){
           System.out.println(ioe.toString());
        }
        String str = s.toString();  //将S变量转为字符串
        try{
            s.close();  //关闭输出流对象
        }  catch (IOException ioe){
           System.out.println(ioe.toString());
        }
        return  str.trim();  //返回文件中的内容字符串
    }
3 将文本文件内容显示出来的技术
通过Form类定义一个表单对象f,通过对象的f.append()的方法将读取文本文件返回的字符串内容加入到表单对象中,为了该表单内容在阅读完之后可以返回上一级显示界面,通过f.addCommand()方法在表单中加入一个按钮对象,并通过f.setCommandListener(this)方法注册CommandListener高级事件处理,这样当选择按钮时即可调用CommandListener 高级事件接口类中的commandAction()函数,在该函数中判断是哪个按钮被选中,通过该函数中的代码来决定处理流程。最后通过Display类的Display.setCurrent()方法将含有文件内容的表单显示在手机屏幕上。处理代码如下:
    Form f=new Form("超级阅读"); //创建一个Form对象f
    strContent=myReadLine ("/test1.txt"); //读取test1.txt文件中的内容返回字符串
    f.append(strContent);  //将文本文件的内容加入到f对象中
  f.addCommand(exitCom);  //将退出按钮选项加入到f对象中
f.setCommandListener(this);  //注册高级事件处理
    display.setCurrent(f);  //将f对象显示到手机屏幕上
4 阅读器中的菜单设计技术
本阅读器菜单结构分两级,一级菜单显示各章的标题,通过选择某一标题选项进入该章进行内容阅读,在章内容界面中设置二级菜单选项,二级菜单中只有一个选项即是返回选项,选中该选项后,则回到上一级,可重新选择章标题,进入新一章内容进行阅读。一级菜单通过List类来建立,首先产生一个List类的对象l,通过l.append("第一章",null)方法在l对象中加入一条选项,用同样的方法可加入多条选项,只要将第一章改为第二章、第三章等,可产生一个有多选项的l对象,通过l.addCommand(exitCommand)方法在l对象中加入一个按钮,作为退出按钮选项,通过l.setCommandListener(this)注册高级事件处理机制,通过该高级事件的注册在操作过程中选中某一选项时,系统自动调用commandAction()函数,并将选中的选项做为参数传递给该函数,在函数中判断选中的是哪一个选项,进行不同的流程处理。最后通过Display类的Display.setCurrent(l)方法将第一级菜单界面显示在手机屏幕上。一级菜单界面的定义如下:
List l=new List("超级阅读--小说",Choice.IMPLICIT);  //定义一个List对象l
  l.addCommand(exitCommand);  //在对象l中加入退出按钮
  l.append("第一章",null);  //加入第一章选项标题
 l.append("第二章",null);  //加入第二章选项标题
 l.append("第三章",null);  //加入第三章选项标题
 l.setCommandListener(this);    //注册高级事件处理机制
  display.setCurrent(l);    //将界面显示在手机屏幕上
在阅读器的菜单设计中,无论是选择了章标题选项,还是选择了一级菜单中的退出或者是阅读章内容界面中的退出选项,都将进入commandAction()函数中,在该函数中进行相应判断进入不同的处理流程代码。
主要程序代码如下:
public void commandAction(Command c,Displayable s)
  {
     if(c==exitCommand)
       {//如果是一级菜单的退出按钮选项则退出本系统
      notifyDestroyed();
          }
else if (c==exitCom)
          {//若是阅读章内容中的退出按钮选项则退出阅读内容界面返回一级菜单界面
       startApp();
       resumeRequest();
          }
else 
          {//如果选择的不是任何一个退出按钮,则进行选择章标题的判断
              String strContent;
            List tmp=(List)s;  //将参数s进行类型转换,转换为List类对象
            switch(tmp.getSelectedIndex()) 
//判断选中的是哪一章标题则进行该章内容阅读界面
           {   case 0:
                        //第一章选中打开test1.txt
                    Form f=new Form("超级阅读");
                        strContent=myReadLine ("/test1.txt");
                        f.append(strContent);
                   f.addCommand(exitCom);
                   f.setCommandListener(this);
                   display.setCurrent(f);
                break;
            case 1:
                        //第二章选中打开test2.txt方法同第一章(略)
                  case 2:
                      //第三章选中打开test3.txt,如果还有更多章可按此方法再增加
                   
           }  // switch 多分支结构语句结束
         }  //if  选择结构结束
  } // commandAction函数结束

 图1  阅读器运行效果
5结束语
JAVA手机的出现也给软件行业提供了新的机遇 ,能否给 JAVA手机提供足够多的软件资源是关系到其能否推广的重要因素之一。本文开发的文本阅读器使得在手机上阅读文件成为可能,这在一定程度上拓展了手机的功能,具有一定的应用价值。
参考文献
[1] 林天峰.JAVA手机编程技术 《现代电子技术》,2003.9
[2] 王森.《Java 手机程序设计》.中国铁道出版社.2003.北京
[3] 蔡翠平.《Java 程序设计》.北方交通大学出版社.2004.北京
 

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
基于Python的在线自主考试系 基于腾讯云的个人知识库管理系统 基于Android的酒店预定系统
基于matlab变频器控制交流电 基于微信小程序的家校联动平台管理 基于时频分析与自适应滤波技术的多
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!