java 写文件 速度_关于java:哪个文件写入速度更快?
我对处理大型文件和有关内存的约束的经验很少。
请注意,我使用Java作为编程语言。
我必须找到文件大小为15GB的记录,然后将结果写入另一个文件。基本上,这是一个搜索范围功能的实现。我的目标是将我范围内的记录写到结果文件中,并用新行分隔。那就是每个记录应该放在单独的行上。此类查询的数量约为400-1000。因此,每个查询将导致写入许多位于其范围内的记录。
那么以下哪个是更快的方法?
1-一旦开始获取查询范围记录,就开始将它们连续写入文件中吗?
2-我将记录存储在某个字符串中,并为找到的每个记录添加字符串,然后最后写出来?
3-使用字符串生成器连接每个查询的结果,然后在末尾写入文件?但是字符串生成器不支持换行符。
4-制作自己的数据结构?
5-创建记录的数组列表,然后在最后遍历以写入文件?
请让我知道就IO和MM而言哪种方法最快。
好吧,我们不能使用数据库,因为它是一个用Java构建数据库的项目,因此我们不能使用任何提供任何索引或数据库相关功能的库。 抱歉,未标记回答的问题是什么意思? 您是否在谈论我在Stack Overflow上提出的其他问题? 谢谢 !
并不是说StringBuilder是最好的解决方案,但是我几乎肯定它支持换行
操作系统级别的写缓冲非常有效。 除非您有探查器数据表明存在问题,否则请选择#1。
好的谢谢! 我正在尝试这个。
+1:不要忘记使用BufferedOutputStream之类的缓冲区。 如果您的编程效率足够高,您的瓶颈可能就是I / O。
我认为Map and Reduce最适合于此。 我还没有从事这个工作,但是参加了相同的会议,而那个家伙为此使用了相同的例子。 拆分文件,让多个程序运行相同的搜索查询-Map,然后在完成搜索后,可以使用Reduce将所有答案合并为一个
其实我的钥匙不是唯一的。 我的数据只有两列,一列是键,另一列是值。 密钥的可变大小范围为7到15位数字,并且密钥也在数据中重复。 所以我怀疑我是否可以将散列用于键,因为MapReduce将散列用于键。 非常感谢您的建议。
2和3听起来都像是本地实现的缓冲实现。 一种更简单,更有效的方法是执行#1,但用BufferedOutputStream包装FileOutputStream。
如果您谈论的是大量记录,则5号可能不是一个好主意,因为您实际上可能会导致交换(这只会损害性能)。
到目前为止,我使用的方法是将记录写到大小等于PageSize(4096K)的缓冲区中,然后使用Java Random Access File。 write chars写入一页大小的字符串缓冲区。 但是看来您告诉的方法要快得多。 所以,现在我将尝试使用它。 谢谢 !
java 写文件 速度_关于java:哪个文件写入速度更快?相关推荐
- 用java写一个日历_使用JAVA写一个简单的日历
JAVA写一个简单的日历 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDa ...
- 用java写分段函数_使用Java将分段函数转换为CSV文件
这似乎有用 - 有点.无论如何,这可能是一个好的开始. public class CSVFun { // Where to start the scan of the function. static ...
- java写一个搜索引擎_搜索引擎—-Java实现一个简单的网络爬虫
Java实现一个简单的爬虫程序. package SearchCrawler;import java.util.*;import java.net.*;import java.io.*;import ...
- java写新闻模板_基于java新闻发布及管理系统
基于java新闻发布及管理系统 java 2020-10-18 下载地址 https://www.codedown123.com/44681.html Java新闻发布系统新闻发布及管理系统就是一个能 ...
- java写的家谱_关于java:家谱计划的逻辑
我在Java中创建一个家庭树程序,或者至少试着去做.我已经开设了几个课程: 名字的获取者和设置者性别年龄等 FamilyMember-扩展个人getter以及设置家长和儿童 家庭-由多个族成员和添加方 ...
- Java写一个快速排序_快速排序java实现
1.快速排序的思想 快速排序属于交换排序,是冒泡排序的升降版.相对于冒泡排序而言,快速排序增大了记录比较和移动的距离,将关键字较大的记录直接移动到后面,将关键字较小的记录直接移动到前面:不再是相邻两个 ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- nginx 限制文件上传速度_nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 - 硬件设备 - 服务器之家...
nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 发布时间:2017-03-09 来源:服务器之家 下面通过文字说明给大家详解Nginx上传文件全部缓存解决方案. 因为应用服务器(Jett ...
- java文件复制速度_【Java】Java代码拷贝文件的速度
Java代码拷贝文件的速度究竟有多快? 前言 最近学习Java到了流处理,其中有种流叫FileInputStream和FileOutputStream,简单来说,就是操作文件的,老师给我们示范了一个非 ...
- 写文件 追加_总结Java中创建并写文件的5种方式
在Java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面小编就帮大家总结一下Java中创建文件的五种方法. 在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者 ...
最新文章
- Transformer杀疯了!力压DeepMind、百度,在GNN大赛夺冠
- 马自达新车全面取消触摸屏,意外引得叫好声一片
- Ansible — Inventory 清单文件
- 手把手教你插入数学公式,妈妈再也不用担心我写不了论文了
- Web前端主要学什么?这些知识要掌握
- qsort函数应用大全
- HDU - 4734 F(x) (2013成都网络游戏,数字DP)
- mysql5.6查看归档_MySQL5.6 使用 pt-archiver 分批删除、归档数据
- java项目如何更改路径_Java修改eclipse中web项目的server部署路径问题
- 泸州职称计算机,2018年11月四川泸州职称计算机考试10月8日开始报名
- android textview 动态高度自适应,TextView自适应高度(解决_UITextContainerView布局问题)...
- ext3,ext4,xfs和btrfs文件系统性能对比
- 基于模拟退火算法求解TSP问题(JAVA)
- 山寨版学子商城——成功上线!
- 一阶电路误差分析_PDE有限差分方法(12)——对流方程数值格式的分析方法
- 【C++】关于strlen函数使用的坑(与socket sendto函数配合使用)
- Python 第五篇 自制数字贺卡
- Jekyll 教程——合集(collections)
- 走进西藏――53个最基本的常识
- Jsp的四种作用域范围