需求描述:

最近在写一个定时任务,发送多次请求到接口,接口返回报文写入到一个文件中,文件要求格式第一行为总数。这个总数只能在最后的时候才能知道,

这就相当于提出了一个要求:在文件的第一行添加内容,以前的内容整体向下偏移一行。

遇到的问题:

我开始做的方法是,在代码中 new StringBuffer ,等全部报文返回后,把返回的报文先全部保存到buffer中,用PrintWriter写入总数到文件,再将返回报文写入。可在实际代码运行中,由于每次返回的报文都存入到buffer中,返回的报文对象被buffer对象引用,没有释放掉,所以占用内存很大。折腾了半天不可行。只能换一种思路了。这个文件大小是50多M,内存几百兆没了。

那既然一次性保存到buffer中不行,那就返回一次报文就保存到本地临时文件中tmpFile,最后在另一个文件dinsFile中先写入总数,从tmpFile没读取一行,就写入到dinsFile。一开始没想到用Scammer这个类,从网上看其他网友的博文才发现正适合,还是很菜,多多学习。

这样占用内存的问题就解决了。下面上代码:

public class QueryBondBalTask extends BaseService{

private String url;

private Logger logger = Logger.getLogger(QueryBondBalTask.class);

public void setUrl(String url) {

this.url = u

java大文件首行追加,java中实现,在大文件的第一行添加内容相关推荐

  1. Linux 命令行访问名字中包含空格的文件或文件夹

    Linux 命令行访问名字中包含空格的文件或文件夹 在 Windows 下命名文件或文件夹名有空格是可以的,甚至在 Windows 和 Ubuntu 虚拟机共享的文件中也可以这么做,但是在 Ubunt ...

  2. 一个执着淫欲的乐受者会认为他的乐受是在色、想、行、识中;认为色、想、行、识是我,在受中住。...

    愚痴无闻凡夫把内色外色一一都当做我:把受.想.行.识当做我,色是我所有:认为色在受.想.行.识中,即是认为心是我,而身体是在心中:受.想.行.识在色中,即是心是我,在身体中住. 把六受身当做我:把色. ...

  3. 【无标题】excel中query编辑器修改数据类型、第一行做标题、计算行数

    1.1 修改数据类型.第一行做标题.计算行数 打开excel数据表格 进入query编辑页面 修改列数据类型 将标题作为第一行.将第一行作为标题 处理结果 再点击将第一行作为标题,既可回复原来标题. ...

  4. java 多个类共用属性_java中读写Properties属性文件公用方法详解

    前言 大家都知道Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改 ...

  5. java 输出文件到mac路径_Java 中几种获取文件路径的方式

    原标题:Java 中几种获取文件路径的方式 1. 前言 Java开发中我们经常要获取文件的路径,比如读取配置文件等等.今天我们就关于文件的路径和如何读取文件简单地探讨一下. 2. 文件的路径 文件的路 ...

  6. java点击图片发出声音_Java 中图片和声音文件的加载

    /* * 本程序实现以下效果: * 1.界面显示一个按钮,按钮初始为红色. * 2.将鼠标移到按钮上时,按钮呈蓝色. * 3.点击鼠标,有声音效果. * 4.鼠标离开按钮时,按钮恢复成红色. */ i ...

  7. java查找第k大的数字_查找数组中第k大的数

    问题:  查找出一给定数组中第k大的数.例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8-- 思考:1. 直接从大到小排序,排好序后,第k大的数就是arr[k-1]. 2. ...

  8. android 文件删除命令大全,Android中删除sdcard里文件的命令

    Android中删除sdcard里文件的命令 有时我们需要删除android模拟器或手机上的sd卡文件,特别是模拟器上的,这时我们就需要借助于一些命令来帮助我们删除文件. 复制代码 代码如下: #重新 ...

  9. python解压到指定文件夹_在Python中压缩和解压文件

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你已经使用计算机一段时间,你可能遇到了.zip扩展名的文件.它们是可以保存许多其他文件,文件夹和子文件 ...

最新文章

  1. c 判断文件是否存在_C语言编程之怎样判断某一文件是否存在
  2. cf D. Powerful array 莫队算法
  3. C语言再学习 -- 声明与定义
  4. org.activiti.engine.ActivitiOptimisticLockingException updated by another transaction concurrently
  5. 【JS新手教程】LODOP打印复选框选中的任务或页数
  6. 字节大战腾讯元宇宙;Docker 自己定制镜像;VMware 云桌面助力秦皇岛市第一医院;微软开源 Cloud Katana;...
  7. nginx设置跨域问题
  8. C++ STL vector容器的插入和删除
  9. 添加文件夹语音_微信语音导出方法大全,微信群语音转发只需3步
  10. 醒醒吧!只努力了一个礼拜就想成功,你不觉得无耻吗?
  11. 泛微发布亿元补贴计划,推动移动办公普及
  12. 百度网盘不限速下载方法全解(验证、体会、转载)
  13. 【转载】机器指令计算机
  14. THINKPADT400安装XP蓝屏
  15. iPhone 各大机型设备号
  16. The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path类似问题简单解决方案
  17. 每日方法分享:手机怎么录屏?
  18. A040_SpringMVC进阶_JSON
  19. mongodb 跟踪SQL语句及慢查询收集
  20. canvas实战之酷炫背景动画(二)

热门文章

  1. FTK将作为RT-Thread子项目发展
  2. 什么是复刻手表?几千块钱的表和几万的表有区别吗
  3. MATLAB麻雀搜索算法求解物流配送中心选址问题实例代码
  4. 计算机xp系统怎么录音,WinXP自带的录音机软件如何开启并使用
  5. overleaf 公式_LATEX 公式通栏
  6. EndNote X9 插入参考文献方法 及论文参考文献常见问题总结
  7. SQL高级语句(二)
  8. 股票基金模拟交易日志4
  9. 被活捉!6条腿4个轮子2只机械手,半人马救援机器人傲娇登场了
  10. 8bit 1GS/s 高速数据采集卡超宽带高速记录回放系统的分类和使用方法