AndroidDev 板


LINE

大家好 我最近在练习Android的Content Provider时遇到一个问题 我的APP要从手机SDCARD存取档案(External Storage)存取档案 也都抓得到file内的资料,也没乱码 只是我打算在APP程式选取完该档案後 进行读档的动作 public void readEnglishWordsCSVfile() { tool.CP_delete(); StringBuilder sb = new StringBuilder(); try { BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(tool.getFilepath()) , "UTF-8")); String data = ""; while ((data = br.readLine()) != null) { if(String.valueOf(data.charAt(0)).equals("#")) continue; String[] sarray = data.split(","); String DAY = sarray[8]; String WORD = sarray[0]; String WORDCLASS = sarray[2]; String WORDFREQUENCY = sarray[3]; String WORDMEAN = sarray[1]; String WORDSENTENCE = sarray[4]; String KEYWORD = sarray[5]; String TOPICFOCUS = sarray[6]; String PRON = sarray[7]; ContentValues values = new ContentValues(); values.put(CP.DAY, DAY); values.put(CP.WORD, WORD); values.put(CP.WORDCLASS, WORDCLASS); values.put(CP.WORDFREQUENCY, WORDFREQUENCY); values.put(CP.WORDMEAN, WORDMEAN); values.put(CP.WORDSENTENCE, WORDSENTENCE); values.put(CP.KEYWORD, KEYWORD); values.put(CP.TOPICFOCUS, TOPICFOCUS); values.put(CP.PRON, PRON); Uri uri = getContentResolver().insert(CP.CONTENT_URI, values); Toast.makeText(MainActivity.this, uri.toString(), Toast.LENGTH_LONG).show() } } catch (IOException e) { e.printStackTrace(); } content.setText(sb); } 这是我撰写的程式码 while((data=br.readLine()) != null) { ...读取该行内容,并且insert至资料库(tool.CP_insert(....)) 以下是Content Provider的insert程式码 @Override public Uri insert(Uri uri, ContentValues values) { Log.i(TAG, "insert"); long rowID = db.insert(DatabaseHelper.TABLE_NAME, null, values); if (rowID > 0) { Uri _uri = ContentUris.withAppendedId(CONTENT_URI, rowID); getContext().getContentResolver().notifyChange(_uri, null); return _uri; } throw new SQLException("Failed to add a record into " + uri); } 执行时会出现Runtime错误 ArrayIndexOutOfBoundsException 似乎是资料量过大 所以我将while回圈内的contentvalues 和下面的insert资料删除之後就没异状 在onCreate进行单笔insert很正常 没runtime错误 tool.CP_insert("1","2","3","4","5","6","7","8","9"); 能问各位有什麽方法能解决这些问题呢? 我只希望能将file内的档案资料送至手机的SQLite 我的作法感觉不太正确 我知道程式有点乱 恳请各位指导 感谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.164.77.193
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1396772055.A.989.html
1F:→ a4679123:tool 是我另外创立的class(我称它为我的工具包) 04/06 16:15
2F:推 slemonade:这错误是阵列的索引值超出,初始化阵列时的长度,我看你 04/08 19:42
3F:→ slemonade:阵列初始化是用spilt,建议先检查资料是否每笔都一样,确 04/08 19:42
4F:→ slemonade:保每个阵列的长度都会一样 04/08 19:42
5F:→ a4679123:我的确用split 我有一行资料是,,,,,,也就是空的资料 05/01 00:50
6F:→ a4679123:以逗点去掉之後变成什麽都没有 後来用Log才发现这个错误 05/01 00:51
7F:→ a4679123:所以後来修正资料长度 和 排除会有空资料的列之後 05/01 00:51
8F:→ a4679123:就没有错误了 谢谢大大 05/01 00:51







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP