मैं अपने DatabaseHandler वर्ग लेकिन ग्रहण में एक फ़ाइल को पार्स करने की कोशिश कहते हैं:एक गतिविधि के बाहर का उपयोग करते हुए getAssets
विधि getAssets() प्रकार DatabaseHandler
इस के लिए अपरिभाषित है कोड है: टिम के लिए
public class DatabaseHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 15;
public DatabaseHandler(Context context) {
super(context, "rettinfo", null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("Create: ", "Creating antidotlist");
String CREATE_ANTIDOT_TABLE = "CREATE TABLE antidots (id INTEGER PRIMARY KEY antidot TEXT, dos TEXT)";
Log.d("Create: ", CREATE_ANTIDOT_TABLE);
db.execSQL(CREATE_ANTIDOT_TABLE);
InputStream antidots = getAssets().open("antidot/antidots");
InputStreamReader input = new InputStreamReader(antidots);
BufferedReader buffreader = new BufferedReader(input,2*1024);
String line;
while ((line = buffreader.readLine()) != null) {
String[] point_t = line.split(",");
}
antidots.close();
}
}
अद्यतन
+०१२३५१६४१०६१इस तरह ग्रहण न किसी भी त्रुटि
int i = 0;
InputStream antidots;
try {
antidots = mCtx.getAssets().open("antidot/antidots");
InputStreamReader input = new InputStreamReader(antidots);
BufferedReader buffreader = new BufferedReader(input,2*1024);
String line;
while ((line = buffreader.readLine()) != null) {
i++;
ContentValues values = new ContentValues();
String[] antidot = line.split("#");
int id = Integer.parseInt(antidot[0]);
values.put("id", id);
values.put("antidot", antidot[1]);
values.put("dos", antidot[2]);
db.insert("antidots", null, values);
}
antidots.close();
} catch (IOException e) {
e.printStackTrace();
}
हाँ प्रयास पकड़ सामान्य है। जब भी आप फ़ाइल io से निपट रहे हों, तो यह आपको कोशिश/पकड़ में कोड लपेट देगा। ऐसा इसलिए होता है क्योंकि फ़ाइल I/o संचालन में बहुत से सामान्य तरीके विफल हो सकते हैं। और कोशिश करें/पकड़ने के बिना आपका प्रोग्राम बस इस घटना में दुर्घटनाग्रस्त हो जाएगा कि i/o – FoamyGuy
के साथ कोई समस्या है, यह भी ध्यान दें कि फ़ाइल I/O प्रयास करने के लिए जावा सम्मेलन के कारण है, और ग्रहण करने के लिए विशिष्ट नहीं है। – FoamyGuy