gpt4 book ai didi

java - 需要一种更好的方法从文本文件中读取和存储值

转载 作者:行者123 更新时间:2023-12-01 15:13:17 25 4
gpt4 key购买 nike

目标:从文本文件中获取值并将其存储到值中以加载到我的 sqlite 数据库中。

问题:我的方法效率不高,我需要帮助想出更简单的方法。

截至目前,我正在解析如下所示的文本文件。

agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone
1,"NJ TRANSIT BUS","http://www.njtransit.com/",America/New_York,en,""
2,"NJ TRANSIT RAIL","http://www.njtransit.com/",America/New_York,en,""

每次读取逗号时,我都会进行解析,然后将该值存储到一个变量中,然后我将使用该变量作为我的数据库值。

这个方法可行,但很耗时,我要读入的下一个文本文件有超过 200 行代码,我需要找到一种更简单的方法。

AgencyString = readText();
tv = (TextView) findViewById(R.id.letter);

tv.setText(readText());

StringTokenizer st = new StringTokenizer(AgencyString, ",");

for (int i = 0; i < AgencyArray.length; i++) {
size = i; // which value i am targeting in the textfile
//ex. 1 would be agency_id, 2 would be agency_name
AgencyArray[i] = st.nextToken();
}
tv.setText(AgencyArray[size]); //the value im going to store into database value
}

private String readText() {
InputStream inputStream = getResources().openRawResource(R.raw.agency);

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

int i;
try {
i = inputStream.read();
while (i != -1) {
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return byteArrayOutputStream.toString();

}

最佳答案

首先,为什么这是一个问题?可以这么说,我并不是想用一个问题来回答你的问题,但需要更多的背景知识来理解你需要以什么方式来提高你正在做的事情的效率。应用程序是否因解析文件而出现明显的延迟,或者是否因在 UI 线程上运行而出现更严重的 ANR 问题?除非其他代码中存在一些未显示的瓶颈,否则我真的怀疑您会比目前正在做的更快地阅读和标记它。好吧,事实上,毫无疑问你可能可以;但是,我认为这更多的是设计应用程序的情况,以便用户不会感知到获取和解析大数据所涉及的延迟,也不会引起用户的烦恼。我自己的应用程序解析这样的大量文件,确实需要几分之一秒的时间,但由于整个应用程序和 UI 的设计,它不会出现问题。另外,您是否使用分析器来查看花费时间的情况?另外,您是否在没有附加调试器的真实设备上运行了它?将调试器连接到真实设备或使用模拟器会大大增加执行时间几个数量级。

我假设您需要在通过网络接收到此文件类型后对其进行解析,而不是与应用程序 bundle 在一起并且只需要解析一次。

关于java - 需要一种更好的方法从文本文件中读取和存储值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12012031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com