社区
Java SE
帖子详情
Java处理大文件的问题
loveyousomuch
2008-04-10 05:11:35
环境:Solaris 10
问题:目录下有一个7G大小的日志文件,里面是文本格式的数据,一条条的
现在想用一个Java来读取并处理它,
由于文件太大,又要保证性能,请在经验的朋友进来看看
...全文
1115
47
打赏
收藏
Java处理大文件的问题
环境:Solaris 10 问题:目录下有一个7G大小的日志文件,里面是文本格式的数据,一条条的 现在想用一个Java来读取并处理它, 由于文件太大,又要保证性能,请在经验的朋友进来看看
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
47 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
其实我是真性情
2009-06-05
打赏
举报
回复
mark
chjl2020
2008-04-25
打赏
举报
回复
像这么大的文件如果一直用链表似的从头往后读,效率真的很慢,
能用多线程把文件分段来读吗?即每个线程读一小片段,
如果能的话,请给个思路吧,谢谢
yifuzhiming
2008-04-25
打赏
举报
回复
跟客户解释一下,这样不好管理,文件太大,客户会理解的
joejoe1991
2008-04-25
打赏
举报
回复
[Quote=引用 44 楼 loveyousomuch 的回复:]
呵呵
已经解决了
思路:监控日志文件的变化,把每次读的位置记下来
然后每次定位到新更新的地方,把增加的内容读出来即可
用普通的IO包即可完成,无需NIO包.
[/Quote]
在文件里移动读取位置 不会耗时间吗?
我怎么感觉会耗掉很多时间。。。
loveyousomuch
2008-04-25
打赏
举报
回复
呵呵
已经解决了
思路:监控日志文件的变化,把每次读的位置记下来
然后每次定位到新更新的地方,把增加的内容读出来即可
用普通的IO包即可完成,无需NIO包.
商科程序员
2008-04-24
打赏
举报
回复
读一点儿处理一点儿呗.
你还想一下把速个文件都读出来,放在内存里备用呀.
chensjmail
2008-04-24
打赏
举报
回复
java nio 对这些做得很不错了,性能我想用缓存就OK了,
缓的大小可以跟据活动空间调整,
这样可能相对可以提高一点点
l_wenb
2008-04-24
打赏
举报
回复
支持竹子的.
loveyousomuch
2008-04-24
打赏
举报
回复
好久没来了,
此问题已经用Java程序解决了
日志达到7G时,Java程序仍能很好的进行处理,并且把新增加的内容过滤出来
而且效率也比较高,
每秒可以处理3000多条,完全达到性能要求,
感谢大家关注!!
sunnauq
2008-04-20
打赏
举报
回复
关注,学习
薛定谔之死猫
2008-04-19
打赏
举报
回复
gawk,后台服务日志一直用它开汇总
kelph
2008-04-19
打赏
举报
回复
[Quote=引用 26 楼 loveyousomuch 的回复:]
引用 22 楼 java2000_net 的回复:
你的日志设置有问题,你不能所有的日志都写到一个文件,可以参考 log4j的做法
1 每天写一个
2 每月写一个
3 每1G 写一个
就连Oracle 都要使用 partition 技术来分割数据库文件,我们为何不自己也分割呢?
我们当然不愿意处理这么大的文件,但这是客户的需求,没办法,他们就要这样做。
Java监控文件的增长不好解决
[/Quote]
需要合理的平衡客户需求和技术实现,并能将最佳的方案有效的反馈给客户。
毕竟高效并且有质量的软件才是开发者和客户的共同目标。
yqsshr
2008-04-19
打赏
举报
回复
路过,学习!
我是风
2008-04-19
打赏
举报
回复
[Quote=引用 23 楼 caoyinghui1986 的回复:]
支持一下.顺便学习............
[/Quote]
qianxf2008
2008-04-19
打赏
举报
回复
以前遇到过这样的问题
用java读取一定格式的数据文件,更新到数据库中。
学习中.......
richard_2010
2008-04-19
打赏
举报
回复
为什么不用别的语言呢。。。
aking21alinjuju
2008-04-19
打赏
举报
回复
学习
justicesun
2008-04-17
打赏
举报
回复
[Quote=引用 18 楼 loveyousomuch 的回复:]
现在的问题是,Java如何来监控一个文件的增长,当文件被写入新的数据时,如何让程序把新加入的数据取出并做相应的处理?
不知道有谁有过此方面的经验
[/Quote]
没经验..
一般写文件的时候都会把文件锁定...没研究过Solaris源码,不好评论
你可以看看Solaris内核,肯定能有更有效的方法解决
hmsuccess
2008-04-17
打赏
举报
回复
4G大小的文件,用了907秒,性能还是不错的, ??
steven_srl
2008-04-17
打赏
举报
回复
22楼问的好,我也奇怪7G的文件啊,我是菜鸟,不过这种东西就算纯粹的拷贝也不是很快的事情,何况还要做分析
原来的日志管理就有问题,处理这种东西好头大^_^
加载更多回复(25)
java
源码包---
java
源码 大量 实例
Java
波浪文字,一个利用
Java
处理
字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
JAVA
_API1.6文档(中文)
java
x.imageio.stream
Java
Image I/O API 的一个包,用来
处理
从
文件
和流中产生的低级别 I/O。
java
x.management 提供
Java
Management Extensions 的核心类。
java
x.management.loading 提供实现高级动态加载的类...
java
处理
大
文件
这种
处理
大
文件
很容易造成 内存不够的
问题
这种 500M的
文件
,堆内存一般会占用2.5G ,那么如果你去读一个5G的
文件
,那么内存直接起飞,所以这种不建议使用 这种因为是有按照一行行读取到内存当中, 所以耗时...
Java
大数据
文件
处理
方法
Java
大数据
文件
处理
是一种
Java
编写的数据
处理
技术,它能够
处理
大型数据
文件
和数据流。这种技术的主要作用是对大量数据进行分析、
处理
和存储。随着数字化和数据化的越来越普及,
Java
大数据
文件
处理
成为了一种非常重要...
Java
极速读取超大
文件
(附源代码)
Java
极速读取超大
文件
Java
读取超大
文件
的几种...在这里必须说明一下,此处所说的超大
文件
,是指至少2G以上,可能是10G或者更大,
文件
内容是单行可
处理
的类型,通常为csv
文件
。好了,前提已说明,让我们快速进入主题...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章