日期:2014-05-20  浏览次数:20734 次

j2me读取TXT文件
1.J2me读取TXT文件,如果在JAR里面就很快了,如果在文件系统里面就慢的可以...

2.为了读取出来的能够自动分行,所以把读出来的内容存放在了Vector数组里面.
    在构造函数里面初始化了数组.
    vector   =   getSubsection(str,font,width-10, "   ,.?! ");
    然后在paint函数里面读取数组的一部份显示一页,
    如果不分页没什么问题,为了分页,加了按扭事件,改变读到数组的位置,比如第一页的时候是循环数组的1-15条,第二页就是15-30条..按扭后调用repaint();函数,可是出现了如下错误...如果把初始化数组的放在Paint函数里面就正常了,可是这样不是每点一回按扭都要重新把字符串分断存数组?   请问是什么原因,搞了很久,实在不明白.
java.lang.NullPointerException
at   txtReader.paint(+43)
at   javax.microedition.lcdui.Canvas.callPaint(+85)
at   javax.microedition.lcdui.Display.repaint(+82)
at   javax.microedition.lcdui.Display$DisplayAccessor.repaint(+14)
at   javax.microedition.lcdui.Display$DisplayManagerImpl.repaint(+16)
at   com.sun.midp.lcdui.DefaultEventHandler.repaintScreenEvent(+24)
at   com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+485)

------解决方案--------------------
空指针错误
当你setCurrent的时候,就调用paint了。而这个时候你可能还没有进行分组,那个Vector为null的话就出空指针了

1.paint里判断下,如果Vector为空,就跳过这段绘制
------解决方案--------------------
初始化哪有放到paint()里面这么干的,放到构造函数中!!
------解决方案--------------------
那就一次一个 char