📄 productloader.java
字号:
/*
* ProductLoader.java
* 用于保存加载保存在资源文件和持续存储器中的产品记录
* Created on 2004年2月5日, 下午4:15
*/
import javax.microedition.midlet.*;
import java.io.*;
import java.lang.*;
import java.util.*;
/**
*
* @author wenyy
* @version
*/
public class ProductLoader {
public Vector arrayLines; //保存所有的产品记录
public ProductLoader(){
arrayLines = new Vector();
}
//得到已经装入的产品记录条数
public int size(){
return arrayLines.size();
}
//装入产品记录
//返回装入记录后总的记录数量
public int reLoad() {
arrayLines.removeAllElements();
loadFromResource("/txt/list.txt");
loadFromDb();
return size() ;
}
//将字符串中的产品记录保存到持续存储记录文件中
public void saveResult(String src) {
Vector array = new Vector();
splitResult(array, src);
ProductDb db = new ProductDb();
db.writeIntoDb(array);
db = null;
array = null;
}
//从文本资源中装入符串
protected boolean loadFromResource(String urlTxt) {
String strRet = null;
try {
//从资源中读入文本文件,内容见参考书 3.6 节
InputStream is = this.getClass().getResourceAsStream(urlTxt);
byte[ ] datain = new byte[is.available()];
is.read(datain);
is.close();
is = null;
strRet = new String(datain);
} catch(Exception e) {
System.out.println("Load resource error");
}
if( strRet != null){
splitResult(arrayLines, strRet);
return true;
}
return false;
}
//从持续存储记录文件中装入记录
protected void loadFromDb() {
ProductDb db = new ProductDb();
db.readFromDb(arrayLines);
db = null;
}
//将字符串分解为单条记录,通过回车符号分隔每条产品记录
protected void splitResult(Vector array, String str) {
int lastIdx = 0;
int foundIdx = 0;
try{
while(lastIdx < str.length()) {
if('\n' == str.charAt(lastIdx) || '\r'== str.charAt(lastIdx)) {
lastIdx++;
continue;
}
foundIdx = str.indexOf('\n',lastIdx);
if(foundIdx <0)
break;
String line=str.substring(lastIdx,foundIdx -1);
array.addElement(line);
lastIdx = foundIdx+1;
}
} catch(Exception e) {
System.out.println("splitResult error ="+e.getMessage());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -