- 浏览: 5819927 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
实现了J2SE的java.util.Properties类,可以用来读取内容类似下面这样的配置文件:
===============================================
# 这是注释
screen_width=240
screen_height=238
myname = rocks
mybirth = \u00d7\u00f7\u00d5\u00df\u00c9\u00fa\u00c8\u00d5
===============================================
这样使用:
Properties prop = new Properties();
InputStream is = this.getClass().getResourceAsStream("conf.prop");
prop.load(is);
is.close();
String name = prop.getProperty("myname");
...
为了省空间和提高性能我把解析unicode的那部分注释起来了,如果你需要支持中文(就像上面的mybirth那样的),把那些注释起来的代码恢复就可以了。
代码:
--------------------------------------------------------------------------------
===============================================
# 这是注释
screen_width=240
screen_height=238
myname = rocks
mybirth = \u00d7\u00f7\u00d5\u00df\u00c9\u00fa\u00c8\u00d5
===============================================
这样使用:
Properties prop = new Properties();
InputStream is = this.getClass().getResourceAsStream("conf.prop");
prop.load(is);
is.close();
String name = prop.getProperty("myname");
...
为了省空间和提高性能我把解析unicode的那部分注释起来了,如果你需要支持中文(就像上面的mybirth那样的),把那些注释起来的代码恢复就可以了。
代码:
--------------------------------------------------------------------------------
package com.joyamigo.util; import java.io.*; import java.util.Hashtable; import java.util.Enumeration; public class Properties extends java.util.Hashtable { public Properties() { super(); } public String getProperty(String key) { return (String)this.get(key); } public String getProperty(String key, String defaultValue) { Object ret = this.get(key); return ret == null ? defaultValue : (String)ret; } public Object setProperty(String key, String value) { return this.put(key, value); } public void list(PrintStream out) { Enumeration e = this.keys(); while (e.hasMoreElements()) { Object key = e.nextElement(); Object value = this.get(key); out.println(key+"="+value); } } public void load(InputStream is) throws IOException { this.load(is, "ISO8859_1"); } public void load(InputStream is, String enc) throws IOException { Reader reader = new InputStreamReader(is, enc); boolean reading = true; StringBuffer buf = new StringBuffer(); while (reading) { int c = reader.read(); switch (c) { case -1: reading = false; break; case (int)'\r': break; case (int)'\n': Object[] pair = parseLine(buf.toString()); if (pair != null) { this.put(pair[0], pair[1]); } buf.setLength(0); break; default: buf.append((char)c); } } Object[] pair = parseLine(buf.toString()); if (pair != null) { this.put(pair[0], pair[1]); } } public void store(OutputStream out, String header) throws IOException { this.store(out, "ISO8859_1", header); } public void store(OutputStream out, String enc, String header) throws IOException { Writer writer = new OutputStreamWriter(out, enc); if (header != null) { writer.write("#"+header+"\n"); } Enumeration e = this.keys(); while (e.hasMoreElements()) { Object key = e.nextElement(); String value = (String)this.get(key); //writer.write(key+"="+rconvUnicode(value)+"\n"); writer.write(key+"="+value+"\n"); } } private Object[] parseLine(String line) { if (line == null || line.trim().length() == 0) { return null; } line = line.trim(); if (line.startsWith("#") || line.startsWith("!")) { // is comment line return null; } int idx = line.indexOf("="); if (idx == -1) { //return new String[] { convUnicode(line), "" }; return new String[] { line, "" }; } else { //return new String[] { convUnicode(line.substring(0, idx).trim()), // convUnicode(line.substring(idx+1).trim()) }; return new String[] { line.substring(0, idx).trim(), line.substring(idx+1).trim() }; } } /*/ private static final String convUnicode(String s) { int idx = 0; int len = s.length(); StringBuffer buf = new StringBuffer(); try { while (idx < len) { char c = s.charAt(idx++); if (c == '\\') { c = s.charAt(idx++); if (c == 'u') { StringBuffer tmp = new StringBuffer(4); for (int i = 0; i < 4; i++) { tmp.append(s.charAt(idx++)); } buf.append((char)Integer.parseInt(tmp.toString(), 16)); } else { buf.append("\\"+c); } } else { buf.append(c); } } } catch (StringIndexOutOfBoundsException ex) { ; } return buf.toString(); } private static final String rconvUnicode(String s) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if ((int)c > 127) { buf.append("\\u"); String ss = Integer.toHexString((int)c); for (int j = 0; j < 4 - ss.length(); j++) { buf.append('0'); } buf.append(ss); } else { buf.append(c); } } return buf.toString(); } //*/ }
发表评论
-
3个RPG练习,最后一个是卡马克卷轴
2010-12-11 18:02 2361import javax.microedition.lcd ... -
j2me小练习,教学用
2010-12-07 20:42 1846有用的J2ME功能函数 ... -
自己早期做的一个基于j2me的飞行射击类游戏
2010-12-07 20:23 2131早期的代码,MVC思想 -
自己早期做的一个基于j2me的魔塔
2010-12-07 20:13 2104上面一个不完整,但代码好(MVC),但没抽出类; 下面一个比 ... -
j2me中的A*算法
2010-12-02 14:08 2065import javax.microedition.mid ... -
j2me代理连接返回码总是400的问题
2010-09-21 16:24 2770400是因为错误的语法导致服务器无法理解请求信息。 Con ... -
当显示内容过多时的滚屏类Container.java
2010-09-16 11:32 2170很多时候,由于手机屏幕太小,一下子显示不了那么多内容,这个时候 ... -
j2me读取中文的配置文件
2010-09-14 20:25 2168还可以参考这篇文章: http://gundumw100.it ... -
使用jsr172解析xml
2010-09-14 10:40 1964基类: import java.io.ByteArrayI ... -
面向对象的RMS操作
2010-09-14 10:29 1716将需要保存的数据集中起来形成一个model类,并且要实现序列化 ... -
Java版数独算法实现
2010-09-10 16:32 16362数独的历史: 数独前身为“九宫格”,最早起源于中国。数千 ... -
使用KXML解析xml数据
2010-09-10 13:05 9335最近做项目,服务器传过来的都是Xml格式的数据,需要解析xml ... -
类似小球列表的选择控件(9宫格)
2010-08-27 15:50 1764import javax.microedition.lcd ... -
j2me工具类:TextUtil.java
2010-08-11 21:24 1712import java.util.Vector; i ... -
j2me工具类:Database.java
2010-08-11 21:18 2023/** * <p>Title: & ... -
j2me工具类:ReadFromFile.java
2010-08-11 21:15 4342import java.io.*; import jav ... -
j2me竖向滚动菜单的基本做法
2010-08-11 16:58 2033public class AppCanvas extend ... -
j2me工具类:声音播放类SoundUtil
2010-06-04 23:21 2136用法: 将需要播放的音乐都罗列在name,type数组中,需要 ... -
j2me工具类:PalettedImage调色板类
2010-06-04 22:57 1809该方法网上可以找到,我添加了一个重载函数: public Im ... -
地图编辑器Mappy下载
2010-05-25 22:30 3332简单的手机游戏地图编辑器,共享之。。。 eclipseme下 ...
相关推荐
对于想学习J2ME的开发者,"[J2ME编程].(Manning).J2ME.-.Java.in.small.things.(2002)"这本书是一个很好的起点,它详细介绍了J2ME的基础知识、开发技巧和实际案例,帮助读者掌握J2ME编程技能。 总结,J2ME是Java在...
j2se j2ee j2me区别.txt
分析对比J2EE,J2SE,J2ME,比较简单移动,挺不错一个期刊
对于Java Micro Edition(J2ME)平台,开发者可以利用特定的API来实现PIM数据的处理。"funambol-j2me-api-6.5.1000.zip"是一个专门针对这一需求的库,旨在帮助开发者在J2ME环境中有效地管理和同步手机上的PIM数据。 ...
J2SE是Java技术的基础,为其他两个版本——Java 2 Platform, Micro Edition (J2ME) 和 Java 2 Platform, Enterprise Edition (J2EE) 提供了基础。J2SE提供了丰富的类库,包括集合框架、网络编程、多线程、I/O流、...
描述中指出,这个自写的Properties类实现了与J2SE中Properties类类似的功能。这可能包括读取和写入配置文件,支持键值对的存取,以及可能的编码转换等功能。开发者可能还考虑到了J2ME的特殊环境,例如文件I/O操作的...
3. **图形与动画**:在J2ME中,游戏画面的绘制通常依赖于Graphics类,开发者需要掌握如何在低分辨率的移动设备上创建和更新游戏画面,以及实现动态效果。 4. **事件处理**:了解如何处理键盘输入和触摸屏事件,这是...
本文向大家简单介绍一下JDK、J2EE、J2SE、J2ME概念及区别,J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。
3. **用户友好**:通过将Java游戏或应用程序直接拖入模拟器窗口,用户可以快速方便地启动它们,类似于在媒体播放器中拖放视频。 4. **性能优化**:KEmulator Lite经过优化,能够在PC上流畅运行J2ME应用,提供接近...
套接字是实现网络通信的基础,这部分讲解了如何使用Java中的Socket类进行TCP/IP通信。 #### 6.3 数据报 数据报是一种基于UDP协议的网络通信方式,适用于对实时性要求较高的应用场景。 #### 6.4 HTTP连接 HTTP是...
2. **基础语法**:了解Java的基础语法,包括数据类型、控制结构、类与对象等,因为J2ME是基于Java的。 3. **MIDP API**:学习MIDP API,它是J2ME中最常用的应用程序接口,包含了用户界面组件、网络连接、数据存储等...
5. **图形和音频处理**:游戏源码中会包含使用J2ME的Graphics类进行图像绘制和更新的代码,以及AudioPlayer或MidiPlayer类进行音效播放的代码。 6. **游戏循环**:游戏通常有一个主循环,用于处理用户输入、更新...
以J2ME为开发平台,利用Java提供强大工具,不但可以在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种手机游戏。本文在介绍J2ME及其体系结构的基础上,以贪吃蛇游戏...
描述中提到,“J2ME手机游戏坦克大战Java源码”实现了游戏的基本功能,尽管相对简单,但非常适合初学者学习Java游戏编程。这表明源码设计可能相对基础,没有过于复杂的算法或图形处理,适合初学者理解和借鉴。通过这...
编写Palm J2ME红外线“聊天”程序.doc 编写Palm J2ME红外线“聊天”程序.doc
Java Micro Edition(J2ME)是Java平台的一个子集,主要设计用于嵌入式设备和移动设备,如手机和智能手表。在这个“J2ME 2D小游戏入门之旅”资料中,你将深入学习如何使用J2ME开发2D游戏。J2ME以其轻量级和跨平台的...
LVector.java:Vector实现类; 2. StringTokenizer.java:StringTokenizer类; 3. SimpleCache.java:Cache类; 4. MD5Digest.java:J2ME MD5算法类; 5. Blowfish.java:J2ME的Blowfish加密类; ...
下面将详细介绍如何在J2ME程序中实现这一效果。 首先,理解J2ME的基础。J2ME是Java平台的一个子集,专门设计用于嵌入式设备,如移动电话和PDA。它由配置(Configurations)和 profiles(Profiles)组成,如MIDP...
在Java.lang包中,CLDC版本剔除了J2SE v1.3 API中的一些类,如ClassLoader、Compiler等,以减少内存占用和提高性能。然而,它仍保留了像Class、Object、Runtime、System、Thread和Throwable等核心运行时类,以及...