java 板


LINE

※ 引述《tkcn (小安)》之铭言: : ※ 引述《ntb (錩哥超口爱)》之铭言: : : 我的程式目的是想将文字档变成一行字串 (StringBuffer的物件) : : 每个档案的大小约40 mb, : : 因为第一行的标题不想串入StringBuffer的物件内, : : 所以想跳掉第一行, : : 但不知道为什麽少串这行,在执行时反而会发生错误。 : 预设的 heap size 是 64 mb, : 你的一个档案就 40 mb,加上一些其他的资源,像是 buffer,还会再多些。 : 当回圈多做几次後,如果 gc 来不及回收就炸掉,应该也是蛮有可能的。 : : (若拿掉String str = input.readLine()就可以) : 这个我看不出原因,能否多试几次看看。 : : while ((str = input.readLine()) != null){ : : sb = sb.append(str); : 这行写成 sb.append(str) 就可以了, : 因为 sb.append(...) 回传的仍然是 sb 的 refrence。 : 这是为了方便你连接多个 append 用的, : ex: sb.append("Hello ").append("world!"); 感谢t大的回应与指导, 不过多了String str = input.readLine() 记忆体会炸掉的问题 我还真的试不出来XD 不知道为了"不将文件第一行"也加到字串中,有没有其他更好的方式呢? 写这个程式的原因是想从文件中,截取特定范围的字串, 但因为有换行的问题,所以想说把他串成字串後, 再来用substring截取,比较不会有计算上的困扰, 但记忆体炸掉这个问题却无法克服。 之前是将整个文件档写到charArray中,再去截取, 现在想换StringBuffer方式来试试看,就遇到这些问题了, 不知道是否有更有效率的方式能达到我的目的呢?(截取特定范围的字串) 非常感谢您的帮忙与指导。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.55.234
1F:→ tkcn:我拿你的程式,依照你的描述去跑,没有遇到任何错误。 06/29 15:57
2F:→ ntb:冏..我是直接在dos下key..java指令执行...还是不行 06/29 17:06
3F:→ ntb:请问t大有用什麽IDE工具吗?谢谢 06/29 17:10
4F:→ tkcn:sun sdk 1.6.0_24 @ Linux,没用其他工具或下任何参数 06/29 18:44
5F:→ ntb:谢谢t大,我也去linux下试试好了 06/30 10:27
6F:→ dou0228:用 FileChannel.map 配合 MappedByteBuffer 吧 06/30 10:40
7F:→ dou0228:不过一样不要直接 mapping 全部到 memory 请自己切断 06/30 10:42
8F:→ dou0228:MappedByteBuffer有档案无法砍问题: http://goo.gl/NGBMV 06/30 11:04
9F:推 undeadj:str建立释放太多次了,跳一行直接下input.readLine(); 06/30 21:48
10F:→ undeadj:把str,input,sb拉到外面去,用reference的方式 06/30 21:50
11F:→ ntb:感谢d大,不过要map前我还是要先串成一行,不然换行符号的问题 07/01 17:22
12F:→ ntb:还是会造成计算上的不便@@ 07/01 17:23
13F:→ ntb:也非常感谢u大的建议,我将str,input,sb拉到while外宣告,在 07/01 17:30
14F:→ ntb:winXP x86下执行,还是会爆@@ 07/01 17:32
15F:→ dou0228:没用阿 一个档案40mb 不改演算法就只能改 heap size 07/01 17:40
16F:→ dou0228:而且你只是要 sb.length? 那直接 file.length() 不就好了 07/01 17:45
17F:→ dou0228:改你的演算法吧,否则和 PHP 的 copy() 一样浪费记忆体 07/01 17:47
18F:→ dou0228:如果你档案不是40MB,而是 2G 那你还不用改演算法吗? XDDD 07/01 17:49
19F:→ ntb:谢谢d大的指教XD 其实我不只是要看length啦 我来换您的方法试试 07/01 18:27
※ 编辑: ntb 来自: 140.109.55.234 (07/01 18:27)







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灯, 水草

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

TOP