目標: テキスト ファイルから値を取得し、それを値に格納して、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();
}