File 如何在J2ME中加速加载资源文件
我正在使用J2ME无线工具包2.2编写一个J2ME应用程序 我有以下代码:File 如何在J2ME中加速加载资源文件,file,java-me,resources,loading,File,Java Me,Resources,Loading,我正在使用J2ME无线工具包2.2编写一个J2ME应用程序 我有以下代码: public class BusReader { private String[] fileNames; private final String allFilesInfoFile = "files_in_dir"; public BusReader () { fileNames = getFileNames (); String busNo = getBusNo ("BusNo1p.bin"
public class BusReader
{
private String[] fileNames;
private final String allFilesInfoFile = "files_in_dir";
public BusReader ()
{
fileNames = getFileNames ();
String busNo = getBusNo ("BusNo1p.bin");
}
public String[] getAllBusFiles ()
{
return fileNames;
}
public String getBusNo (String fileName)
{
String[] fileLines = loadResourceFile (fileName);
int linesCount = fileLines.length;
for (int i=0;i<linesCount;++i)
if (fileLines[i].equals ("[BusNo]") && i < linesCount-1)
return fileLines[i+1];
return null;
}
public String getDefaultDirection (String fileName)
{
String[] fileLines = loadResourceFile (fileName);
int linesCount = fileLines.length;
for (int i=0;i<linesCount;++i)
if (fileLines[i].equals ("[BusDirection]") && i < linesCount-1)
return fileLines[i+1];
return null;
}
private String[] getFileNames ()
{
return loadResourceFile (allFilesInfoFile);
}
private String[] loadResourceFile (String fileName)
{
String content = "";
try
{
Reader in = new InputStreamReader(this.getClass().getResourceAsStream(fileName), "iso-8859-2");
StringBuffer temp = new StringBuffer(1024);
char[] buffer = new char[1024];
int read;
while ((read=in.read(buffer, 0, buffer.length)) != -1)
temp.append(buffer, 0, read);
content = temp.toString();
} catch (IOException e) {
return null;
}
int len = content.length ();
if (content.charAt (len-1) == '\n' && content.charAt (len-2) == '\r')
{
String newContent = "";
for (int i=0;i<len-2;++i)
newContent += content.charAt (i);
content = newContent;
}
String[] fileLines = TString.Split ("\r\n", new TString(content));
for (int i=0;i<fileLines.length; ++i)
{
fileLines[i] = fileLines[i].trim ();
if (fileLines[i].length () == 0)
fileLines[i] = "";
}
return fileLines;
}
}
它将加载资源文件。函数正在加载的文件大小为:1.22KB和29KB。
问题是:如何加速加载函数(loadResourceFile)
我试图创建java类文件作为资源数据,但它超出了java内存限制。我将数组字符串[][]更改为字符串[][],并在15秒内加载到我的手机上。我想,当我将数据作为资源加载时,它会工作得更快。我的手机:诺基亚3110c我找到了。
这是以下几行(需要35秒):
if(content.charAt(len-1)='\n'和&content.charAt(len-2)='\r')
{
字符串newContent=“”;
对于(int i=0;i
loadResourceFile (String fileName)
if (content.charAt (len-1) == '\n' && content.charAt (len-2) == '\r')
{
String newContent = "";
for (int i=0;i<len-2;++i)
newContent += content.charAt (i);
content = newContent;
}