社区
Java SE
帖子详情
JAVA怎么处理大于2G甚至20G的文件?
peer3002
2010-08-08 09:22:48
1. JAVA怎么处理大于2G甚至20G的文件?
2. mappedByteBuffer是不是没有底层实现数组? 也就是说:mappedByteBuffer.array() 没用是吗?
...全文
982
9
打赏
收藏
JAVA怎么处理大于2G甚至20G的文件?
1. JAVA怎么处理大于2G甚至20G的文件? 2. mappedByteBuffer是不是没有底层实现数组? 也就是说:mappedByteBuffer.array() 没用是吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
火龙果被占用了
2010-08-09
打赏
举报
回复
处理大文件?这“处理”的讲究可就大了!
先把“提问的智慧”看一下再来问吧!
http://community.csdn.net/IndexPage/SmartQuestion.aspx
peer3002
2010-08-09
打赏
举报
回复
long start = 0L;
long bufSize = 4096000L;
MappedByteBuffer mapBuffer = fc.map(FileChannel.MapMode.READ_WRITE, start,bufSize);
...
long start = start + bufSize;
MappedByteBuffer mapBuffer = fc.map(FileChannel.MapMode.READ_WRITE, start,bufSize);
...
peer3002
2010-08-09
打赏
举报
回复
第二个问题:mappedByteBuffer 是直接缓冲,所以缓冲区还在os的内存里,不在java的内存区域内,所以应该没有底层实现数组。要用的话要自己定义数组,再从buffer读到数组(java的内存区域内}。
peer3002
2010-08-09
打赏
举报
回复
昨晚一宿未眠,终于想到了办法。就如 redduke1202 所说,分部分处理,最好用mappedByteBuffer,这样效率要高很多。
早上想来,还是自己对深入的细节不真正理解所致。看来还要认真读书理解才不会有这样的愚蠢问题。
感谢大家的关注!
yushiqiang1688
2010-08-08
打赏
举报
回复
RandomAccessFile吧,详细见JDK帮助文档!
dr_lou
2010-08-08
打赏
举报
回复
RandomAccessFile吧,用多少读多少。
w_s254322
2010-08-08
打赏
举报
回复
写几个线程,分部执行!
「已注销」
2010-08-08
打赏
举报
回复
超大文件的话,只能一部分一部分处理
java里的byte[],最大只支持 2G-1字节长吧
因为数组的 length属性是int
宅男小何
2010-08-08
打赏
举报
回复
关注、、、、
解决apk包体
大于
2G
无法对齐和签名的问题
摘要:
处理
超过
2G
B的大体积APK时,常见工具zipalign和apksigner会因32位
文件
偏移限制而报错。文中提供了验证通过的工具版本及下载链接,帮助开发者突破大
文件
处理
限制。
Java
内存映射,上G大
文件
轻松
处理
内存映射
文件
(Memory-mapped File),指的是将一段虚拟内存逐字节映射于一个
文件
,使得应用程序
处理
文件
如同访问主内存(但在真正使用到这些数据前却不会消耗物理内存,也不会有读写磁盘的操作),这要比直接
文件
读写快几个数量级。 稍微解释一下虚拟内存(很明显,不是物理内存),它是计算机系统内存管理的一种技术。像施了妖法一样使得应用程序认为它拥有连续的可用的内存,实际上呢,它通常是被分隔成多个...
java
超大文本_
java
处理
大文本
2G
以上
面试中经常碰到类似问题,问题的关键我觉得是用设置一个缓冲区还有一个思路 是通过Linux split 命令将
文件
直接切割成小
文件
,再进行
处理
再汇总。或者jdk7提供的 forkjoin 框架,利用forkjoinpool管理的线程池,
处理
此种问题,未尝试过。以下内容转自: http://blog.csdn.net/sysmedia/article/details/78030113如下的程序,将一个...
JAVA
NIO(六):读取10G的
文件
其实很容易
读取10G的文本
文件
,我们可能会直接认为,这太难了,这涉及到内存的容量,硬盘的读取速度以及虚拟内存、页失败载入等概念,其实对
JAVA
,读取10G的
文件
轻而易举,无论bio(
java
.io)还是nio,都能轻松完成任务。本次测试的10G
文件
,来源于上篇文章《
JAVA
NIO(五):如何在5秒内写入10G的文本数据》的实验结果。1. FileInputStream VS BufferedInputStr
java
使用FileChannel的transferTo方法拷贝
大于
2G
文件
import lombok.extern.slf4j.Slf4j; import
java
.io.FileInputStream; import
java
.io.FileOutputStream; import
java
.io.IOException; import
java
.nio.channels.FileChannel; @Slf4j public class TestByteBufferTransferTO { public static void main(String[] a...
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章