互联网投资报价服务实现与PDA开发的J2ME探索
立即解锁
发布时间: 2025-08-18 02:20:32 阅读量: 1 订阅数: 5 

# 互联网投资报价服务实现与PDA开发的J2ME探索
## 1. 互联网投资报价服务实现
### 1.1 获取报价页面
在实现互联网投资报价服务时,首先需要获取包含报价信息的页面。以下是获取报价页面的代码示例:
```java
private static String getQuotePage(String symbolString, int type) {
char marker = '$';
int readLength = 20;
StringBuffer quotePage = new StringBuffer();
try {
String protocol = "http://";
String stockURL = "quotes.nasdaq.com/Quote.dll?" +
"page=multi&page=++&mode=stock&symbol=";
String fundURL = "www.nasdaq.com/asp/quotes_mutual.asp?" +
"page=++&mode=fund&symbol=";
InputStreamReader in;
if (type == 0) {
in = new InputStreamReader(Connector.openInputStream(protocol +
stockURL + symbolString));
} else {
in = new InputStreamReader(Connector.openInputStream(protocol +
fundURL + symbolString));
}
int ch;
while ((ch = in.read()) > 0 ) {
if (((char) ch) == marker) {
char[] end = new char[readLength];
in.read(end,0,readLength);
quotePage.append(new String(end));
break;
}
}
in.close();
} catch (IOException ex) {
System.out.println("Exception reading quote from HTTP Connection " +
ex.getMessage());
}
return quotePage.toString();
}
```
操作步骤如下:
1. 创建一个`StringBuffer`用于存储页面部分内容。
2. 根据投资类型(股票或基金)选择合适的URL,并打开输入流连接到相应的网站。
3. 读取字符,直到找到价格标记`$`,然后读取后续的一定长度字符添加到`quotePage`中。
4. 关闭输入流。
### 1.2 从HTML中提取价格报价
获取到包含报价信息的页面后,需要从中提取出实际的价格信息。以下是提取价格报价的代码示例:
```java
private static int[] parseQuote(String aQuotePage, int type){
String skip;
String dollarsEnd;
String quoteEnd;
String quoteDollars = null;
String quoteCents = null;
int[] dollarsCents = new int[2];
if (type == 0) {
skip = "$ ";
dollarsEnd = ".";
quoteEnd = "</b>";
} else {
skip = "$";
dollarsEnd = ".";
quoteEnd = "</b>";
}
try {
int generalPos = aQuotePage.indexOf(skip);
int dollarStop = aQuotePage.indexOf(dollarsEnd, generalPos);
int quoteStop = aQuotePage.indexOf(quoteEnd, dollarStop);
quoteDollars = aQuotePage.substring(generalPos + (skip.length()),
dollarStop);
dollarsCents[0] = Integer.parseInt(quoteDollars);
quoteCents = aQuotePage.substring(dollarStop + 1, quoteStop);
dollarsCents[1] = Integer.parseInt(quoteCents);
return dollarsCents;
} catch (Exception e){
System.out.println("Error attempting to parse quote from " +
"source page. Improper Symbol?");
return null;
}
}
```
操作步骤如下:
1. 根据投资类型设置跳过的字符串、美元部分结束标记和报价结束标记。
2. 查找跳过字符串的位置,然后依次找到美元部分结束标记和报价结束标记的位置。
3. 提取美元和美分部分的字符串,并转换为整数存储在数组中返回。
4. 如果出现异常,打印错误信息并返回`null`。
### 1.3 MIDlet对报价数据的处理
`ObtainQuoteMIDlet`负责调用`QuoteService`获取报价数据,并处理可能出现的错误。以下是新的`CommandListener`代码示例:
```java
CommandListener commandListener = new CommandListener() {
public void commandAction(Command c, Displayable d) {
if (c == entryForm.getExitCommand()) {
destroyApp(true);
} else if (c == entryForm.getGetCommand()) {
if ((entryForm.getInvestmentChoice().getSelectedIndex() == 1)
&& !(entryForm.getSymbolField().getString()
```
0
0
复制全文
相关推荐










