java读写2G以上的大文件(推荐使用以下方法)

     static String sourceFilePath = "H:\\DataSource-ready\\question.json" ;
static String distFilePath = "H:\\DataSource-ready\\separate\\" ; public static void main( String[] args )
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
System.out.println("开始时间" + sdf.format(new Date()));// new Date()为获取当前系统时间 long timer = System.currentTimeMillis();
try {
File file = new File(sourceFilePath);
BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file));
BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),7*1024*1024);// 用7M的缓冲读取文本文件 int count = 1 ;
String outputFile = distFilePath + count + ".json" ;
FileWriter fw = new FileWriter(outputFile);
String line = "";
while((line = reader.readLine()) != null){
if ( line.contains("},") ) {
line = line.replace("},", "}") ;
fw.append(line + "\r");
fw.flush();
fw.close();
count ++ ;
outputFile = distFilePath + count + ".json" ;
fw = new FileWriter(outputFile);
}
else {
fw.append(line + "\r");
}
}
reader.close();
fw.flush();
fw.close();
} catch (IOException e) {
System.out.println("读写文件失败!");
e.printStackTrace();
}
timer = System.currentTimeMillis() - timer;
System.out.println("处理时间:" + timer + " 毫秒");
System.out.println("结束时间:" + sdf.format(new Date()));
}

共同学习,共同进步,若有补充,欢迎指出,谢谢!

java读写大文件的更多相关文章

  1. java filechannel大文件的读写

    java读取大文件 超大文件的几种方法 转自:http://wgslucky.blog.163.com/blog/static/97562532201332324639689/   java 读取一个 ...

  2. 【原创】用JAVA实现大文件上传及显示进度信息

    用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/grayprince/UploadBigFil ...

  3. java读大文件最快性能【转】

    java读大文件最快性能 完全引用自: 几种读大文件方法的效率对比测试 据说1.88g只要5秒左右,未亲测. /** * 读大文件 * BufferedReader + char[] * @throw ...

  4. java读取 500M 以上文件,java读取大文件

    java 读取txt,java读取大文件 设置缓存大小BUFFER_SIZE ,Config.tempdatafile是文件地址 来源博客http://yijianfengvip.blog.163.c ...

  5. java 读取txt,java读取大文件

    java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File;import java.io.RandomAccessFile;i ...

  6. java+web+大文件上传下载

    文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...

  7. Java解决大文件读取的内存问题以及文件流的比较

    Java解决大文件读取的内存问题以及文件流的比较 传统方式 读取文件的方式一般是是从内存中读取,官方提供了几种方式,如BufferedReader, 以及InputStream 系列的,也有封装好的如 ...

  8. Java读写大文本文件(2GB以上)

    如下的程序,将一个行数为fileLines的文本文件平均分为splitNum个小文本文件,其中换行符'r'是linux上的,windows的java换行符是'\r\n': package kddcup ...

  9. java读取大文件 超大文件的几种方法

    java 读取一个巨大的文本文件既能保证内存不溢出又能保证性能       import java.io.BufferedReader; import java.io.File; import jav ...

随机推荐

  1. spring-boot集成3:集成swagger

    Why swagger? 使用swagger让你从编写接口文档的无聊工作中解脱出来 1.Maven依赖 <!-- swagger --> <dependency> <gr ...

  2. WEB框架初识

    HTTP介绍 Hyper Text Transfer Protocol,超文本传输书协议,是万维网数据通信的基础,规定了请求和响应标准. HTTP工作原理 HTTP 请求以及响应的步骤 客户端连接到W ...

  3. KVM虚拟迁移(5)

    一.迁移简介 迁移:      系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行.在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术.在源主机上实时 ...

  4. 搭建elk集群 disabled in libcurl elasticsearch-6.2.2 更新license 版本

    0.logstash的部分配置 output { stdout {codec => rubydebug} elasticsearch { hosts => ["172.31.25 ...

  5. [转帖]Linux学习笔记之rpm包管理功能全解

    Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...

  6. idea中模块累积编写

    idea中新建Empty Project名为myproject,新建模块mymodel1 要想复制该模块,再在该模块的基础上开发怎么弄? 选中该模块右键Copy,在Project空白区域右键Paste ...

  7. JS实现把一个页面层数据传递到另一个页面的两种方式

    本博客整理了两种方式从一个页面层向另一个页面层传递参数. 一. 通过cookie方式 1. 传递cookie页面的html,此处命名为a.html 请输入用户名和密码: <input id=&q ...

  8. [Next] 服务端渲染知识补充

    渲染 渲染:就是将数据和模版组装成 html 客户端渲染 客户端渲染模式下,服务端把渲染的静态文件给到客户端,客户端拿到服务端发送过来的文件自己跑一遍 js,根据 JS 运行结果,生成相应 DOM,然 ...

  9. java多线程之并发编程

    1.并发不一定比串行更快 因为并发有线程创建和上下文切换的开销 2.java的并发采用内存共享模型 3.单线程中重排序不会影响到结果 但多线程中重排序可能会影响到结果 4.votaile变量 当线程A ...

  10. Python 东方财富网-股市行情数据抓取

    东方财富网 股市行情数据抓取: http://quote.eastmoney.com/center/gridlist.html#hs_a_board 请求数据未入库处理,其中数据只存入数据文本,未做存 ...