- 浏览: 5839153 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (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 2384import javax.microedition.lcd ... -
j2me小练习,教学用
2010-12-07 20:42 1880有用的J2ME功能函数 ... -
自己早期做的一个基于j2me的飞行射击类游戏
2010-12-07 20:23 2177早期的代码,MVC思想 -
自己早期做的一个基于j2me的魔塔
2010-12-07 20:13 2148上面一个不完整,但代码好(MVC),但没抽出类; 下面一个比 ... -
j2me中的A*算法
2010-12-02 14:08 2094import javax.microedition.mid ... -
j2me代理连接返回码总是400的问题
2010-09-21 16:24 2786400是因为错误的语法导致服务器无法理解请求信息。 Con ... -
当显示内容过多时的滚屏类Container.java
2010-09-16 11:32 2191很多时候,由于手机屏幕太小,一下子显示不了那么多内容,这个时候 ... -
j2me读取中文的配置文件
2010-09-14 20:25 2188还可以参考这篇文章: http://gundumw100.it ... -
使用jsr172解析xml
2010-09-14 10:40 1987基类: import java.io.ByteArrayI ... -
面向对象的RMS操作
2010-09-14 10:29 1753将需要保存的数据集中起来形成一个model类,并且要实现序列化 ... -
Java版数独算法实现
2010-09-10 16:32 16389数独的历史: 数独前身为“九宫格”,最早起源于中国。数千 ... -
使用KXML解析xml数据
2010-09-10 13:05 9358最近做项目,服务器传过来的都是Xml格式的数据,需要解析xml ... -
类似小球列表的选择控件(9宫格)
2010-08-27 15:50 1782import javax.microedition.lcd ... -
j2me工具类:TextUtil.java
2010-08-11 21:24 1738import java.util.Vector; i ... -
j2me工具类:Database.java
2010-08-11 21:18 2043/** * <p>Title: & ... -
j2me工具类:ReadFromFile.java
2010-08-11 21:15 4372import java.io.*; import jav ... -
j2me竖向滚动菜单的基本做法
2010-08-11 16:58 2044public class AppCanvas extend ... -
j2me工具类:声音播放类SoundUtil
2010-06-04 23:21 2149用法: 将需要播放的音乐都罗列在name,type数组中,需要 ... -
j2me工具类:PalettedImage调色板类
2010-06-04 22:57 1829该方法网上可以找到,我添加了一个重载函数: public Im ... -
地图编辑器Mappy下载
2010-05-25 22:30 3347简单的手机游戏地图编辑器,共享之。。。 eclipseme下 ...
相关推荐
以上就是在J2ME中实现类似J2SE中`Properties`类的方法。虽然没有直接使用内置的类,但通过自定义`Properties`类并利用`Hashtable`,我们依然可以有效地管理和读取配置信息。在实际开发中,可以根据需求扩展这个类,...
描述中指出,这个自写的Properties类实现了与J2SE中Properties类类似的功能。这可能包括读取和写入配置文件,支持键值对的存取,以及可能的编码转换等功能。开发者可能还考虑到了J2ME的特殊环境,例如文件I/O操作的...
* 在C语言中,可以有多个类在一个文件中,而在JAVA语言中,每个文件只能有一个公共类,该类的名称必须与文件名相同,但以.java为扩展名。 JAVA虚拟机 JAVA虚拟机(JVM)是JAVA语言的核心组件,负责解释和执行JAVA...
Java涵盖了众多子领域,如J2SE(Java标准版)用于桌面应用,J2EE(Java企业版)用于企业级应用开发,J2ME(Java微型版)则针对嵌入式设备。因此,这些项目可能涉及Web开发(使用Spring Boot、Struts等框架),桌面...
- Properties、File、Math、System等类的使用 - String与StringBuilder ##### 3. J2SE高级主题 - 文件与流处理 - 多线程编程 - Socket编程 - 异常处理 - 反射机制 - 设计模式 ##### 4. SWING与AWT - GUI编程基础...
- **J2SE**: Java 2 Standard Edition,是Java平台的核心,提供开发和运行桌面应用的环境。 - **Java**: 一种广泛使用的面向对象的编程语言,适用于跨平台应用开发。 - **j2mepolish**: 指的是J2ME Polish工具,已经...
环境:Windows XP professional, JDK 1.6, Eclipse 3.3 安装JDK 6.0之后会安装自带的纯Java的数据derby. 也就是说,如果安装JDK 6.0版本...该数据数应该为J2ME编程带来非常大的好处,同时也为J2SE和J2EE编程来带方便。
- 如`java.util`、`java.io`等。 - **字符串(String)**: - 不可变的字符序列。 - 方法: `length()`、`charAt()`、`toString()`等。 - **函数调用**: - 方法的参数传递。 - 返回值。 - **对象克隆(Cloneable)**:...