java 板


LINE

※ 引述《penguin0322 (陆哥1/17记得共同101考本)》之铭言: : 现在由於学校要用到 : 需要把一些很大的生物资料放进MySQL的资料库中 : 而这也是我第一次用跟学java和MySQL 冏rz.. : >JCVI_SCAF_1101669000001 /length=1071 /full_length=1071 : /assembly=JCVI_ASM_feb03_2005_GS-02 : ATTCTTATTTATGATCTAGATGTGCATCAAGGTGATGGTACTGCGAAAATTTTTGAAAATAATGATCAGGTGTATACTTT : ............(中间省略) : GGATCCAGCATCAAACACTCTAGGCTGGAGATGGGTGGCAGGTCTTCATACCAAGGGGAAGCATTATCTAGCTTCCGAAT : GGATATAATAAATCTCCGCTAAAAGTATGAG : 我原本的想法是MySQL load data的时候是用\n\t来分隔资料 : 而我的资料不是格式都相同 : 所以原本打算用java来做资料的转换 : JCVI_SCAF_1101669000000 length=840 full_length=840 assembly=JCVI_ASM_feb03_2005_GS-02 : AATACACCTTATGCAGATATCGCTTCTTCTAATTTTGCAAACAAAAGATTGAGTTCGTTTTATTTAGGCGGGATTA... : 这样资料就都是变成以tab和换行来表示了 MySQL也就可以作输入的动作了 : 但是 以上都是我用一个小数据测试的结果 : 当我要实作时 我的资料是4.5GB...冏rz : 跑了三四个小时 最後出现 : java.lang.OutOfMemoryError 冏.. 可以简单的跟您提一下, 通常要用java 对这种很大的档案做存取, 一般是以二元码串流进行读入及输出.. 简单范例 : 若您要从档案读取, 再写入档案--- public static void main(String[] arg0) { File fromFile = new File("c:\\source.txt"); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fromFile)); BufferedOutputStream bos = new BufferedOutputStream ( new FileOutputStream("c:\\to.txt")); byte[] buffer = new byte[4096]; int n = -1; while((n=bis.read(buffer))!=-1) { bos.write(buffer, 0, n); } bos.flush(); bis.close(); bos.close(); } byte阵列 buffer 的大小可以自己调. 那是串流缓冲区块的大小. 如果是资料库 您可能就要把它存到 Clob或Blob栏位了. 但各家的资料库对这两种资料型态有不一样的实作...... Mysql的话, 我记得 Clob或Blob 有限制 32mb还是64mb. 但後来的版本好像有做比较大的资料型态. 这一方面您可能要去看一下Mysql的文件. 资料太大存不进资料库会跟其 栏位的资料型态或资料表本身的资料限制有点关系. 如果是要用java存进资料库. 您可以看一下 java.sql 底下的PreparedStatement的用 法. 您可能会发现, 其实最直觉的应该是要把资料 存成 java的Blob或 Clob的物件. 再把它写到资料库. 但是 java却没有提供直接建立 Blob及Clob物件的方法. 反而是要从资料库去读取, 才有办法取得这两个的物件. 唯一比较快,而且比较正确的做法也是使用二位元串流存取.. 你会发现PreparedStatement类别中有一个 setBinaryStream 这个方法可以用. 其中第三个参数, 你可以用InputStream的available来取得... 希望对您有帮助. --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.124.20







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