社区
Java SE
帖子详情
格式化写文本的,你能高效的处理吗?
tinwoo
2006-08-14 03:25:57
每个域有固定长度,格式化写文本如下:
1xxxxxxx 2xxxxxxxxxxxxx 3xxxxxxxxxxx 4xxxxxxxxxx ...
1xxxxxxx 2xxxxxxxxxxxxx 3xxxxxxxxxxx 4xxxxxxxxxx ...
:
:
比如1xxxxxxx域长度占60个字符,2xxxxxxxxxxxx占100个字符,等等,写50万条这样的记录,你如何提高性能?
...全文
253
19
打赏
收藏
格式化写文本的,你能高效的处理吗?
每个域有固定长度,格式化写文本如下: 1xxxxxxx 2xxxxxxxxxxxxx 3xxxxxxxxxxx 4xxxxxxxxxx ... 1xxxxxxx 2xxxxxxxxxxxxx 3xxxxxxxxxxx 4xxxxxxxxxx ... : : 比如1xxxxxxx域长度占60个字符,2xxxxxxxxxxxx占100个字符,等等,写50万条这样的记录,你如何提高性能?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tinwoo
2006-08-15
打赏
举报
回复
自己顶一下吧
碧海情天-赵亮
2006-08-15
打赏
举报
回复
漏了点,我上面说的"内存地址已固定"的意思,是你可以用多线程.
碧海情天-赵亮
2006-08-15
打赏
举报
回复
很多人都提过内存库了,不仅是在减少数据IO方面,同时,对于格式化数据也是有作用的(只要有起始地址,那么所有数据段因为长度固定,所以地址也是固定的).
对楼主的建议就是,程序素来就是个变的东西,需要你不断检验.
谈论中最好的方法也不一定是对你的实际情况最好的办法,只有你有条件进行比较.最终应该是你最有发言权.
tinwoo
2006-08-15
打赏
举报
回复
最后一顶
tinwoo
2006-08-15
打赏
举报
回复
上楼:
只是在和大家讨论,并非卖关子,你误会了
碧海情天-赵亮
2006-08-15
打赏
举报
回复
是的,问题不要搞得太飘渺.总得有个讨论的基点.
格式化的问题,好像楼主挺在意,多次提及.
是有独到高见,还是都不会? 回复的人都没把它当个事来提,因为最简单和直接的方法在基础知识里就有了.还用说吗.如果楼主另有高见,就不要卖关子了.
hbwhwang
2006-08-15
打赏
举报
回复
上楼:
其实没有最高效的算法,只有相对比较高效的。
在IO操作这块,我一直的经验是BufferedInputStream和BufferedOutputStream相对比较高。
昨天有人提出nio,我已经用实际代码证明了,nio的效率相比BufferedIO,并没有优势。
还有人提出 内存映射文件 ,我虽然没有实证,但是我相信效率应该跟BufferedIO没有大的差别。
TinyJimmy
2006-08-15
打赏
举报
回复
需要找到你效率需要注意的地方, 如
1. 格式化字段
2. 数据IO
针对每个问题可以有不同的解决方案
1. 格式化
a)可用java直接Format方法
b)可用存储过程数据库生成好格式数据到临时表中,直接倒出(用主机能力)
c)如果主机性能OK,资源也够,可将数据库临时表放入内存, 降低物理IO, 也能加快生成效率
...
2. 数据IO
a)直接FileOutputStream写文件
b)使用StringBuffer,到了一定量再写
c)使用BufferWriter写
d)直接在主机上写完后,再一次性取出
...
Java本身的IO主要是用JNI完成的,效率很高.以前偶写的倒出程序, 从数据库取出, java IO, 一般情况下, 普通PC上执行, 不会低于2000条/秒
tinwoo
2006-08-15
打赏
举报
回复
上楼:
我现在还没有用方法实现,意图是找一种最高效的方法,所以请教大家.
hbwhwang
2006-08-15
打赏
举报
回复
tinwoo (稻草人) :
我想问你一下,
1、你现在用什么方法实现的?
2、需要多长时间?
3、在现有基础上,你想缩短多少?
hbwhwang
2006-08-14
打赏
举报
回复
该说的俺在上个帖子都说了,现在就是帮你顶了~
tinwoo
2006-08-14
打赏
举报
回复
上楼,你好像没有明白我的问题
zhmt
2006-08-14
打赏
举报
回复
try {
BufferedWriter out = new BufferedWriter(new FileWriter("filename", true));
out.write("aString");
// 这里继续写其它的。。。。
out.close();
} catch (IOException e) {
}
别人用这个写过数百M大小的文件,很快
zhmt
2006-08-14
打赏
举报
回复
大概用bufferedOutputStream吧,尽量一次io多输出一些数据。
zhmt
2006-08-14
打赏
举报
回复
努力接分升级中...帮你up!
tinwoo
2006-08-14
打赏
举报
回复
怎么减少?!
healer_kx
2006-08-14
打赏
举报
回复
对,减少IO的次数。
treeroot
2006-08-14
打赏
举报
回复
减少io次数
treeroot
2006-08-14
打赏
举报
回复
缓存
AJViewer软件
将扫描文件,照片上的中文转换成word文档,识别率高,还是免费的,还等什么?快下吧。
Java OCR 图像智能字符识别技术,可识别中文
Java OCR 图像智能字符识别技术,可识别中文。具体详见:http://blog.csdn.net/white__cat/article/details/38461449
Gson 2.3.1
gson最新版本gson2.3.1。源码、文档、开发包一应俱全!
jackson-core-asl-1.9.13+jackson-mapper-asl-1.9.13札包
jackson-core-asl-1.9.13.jar和jackson-mapper-asl-1.9.13.jar,在ssh整合中需要用到。
迷你PDG阅读器(mini pdg reader)
一个很小的PDG阅读器!
比超星好用!
绿色版不用安装!
下载后解压到C盘下使用(一定要解压到系统盘哦!)!
绝对好用!大家顶一下!
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章