java读写大文件
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读写大文件的更多相关文章
- java filechannel大文件的读写
java读取大文件 超大文件的几种方法 转自:http://wgslucky.blog.163.com/blog/static/97562532201332324639689/ java 读取一个 ...
- 【原创】用JAVA实现大文件上传及显示进度信息
用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/grayprince/UploadBigFil ...
- java读大文件最快性能【转】
java读大文件最快性能 完全引用自: 几种读大文件方法的效率对比测试 据说1.88g只要5秒左右,未亲测. /** * 读大文件 * BufferedReader + char[] * @throw ...
- java读取 500M 以上文件,java读取大文件
java 读取txt,java读取大文件 设置缓存大小BUFFER_SIZE ,Config.tempdatafile是文件地址 来源博客http://yijianfengvip.blog.163.c ...
- java 读取txt,java读取大文件
java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File;import java.io.RandomAccessFile;i ...
- java+web+大文件上传下载
文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...
- Java解决大文件读取的内存问题以及文件流的比较
Java解决大文件读取的内存问题以及文件流的比较 传统方式 读取文件的方式一般是是从内存中读取,官方提供了几种方式,如BufferedReader, 以及InputStream 系列的,也有封装好的如 ...
- Java读写大文本文件(2GB以上)
如下的程序,将一个行数为fileLines的文本文件平均分为splitNum个小文本文件,其中换行符'r'是linux上的,windows的java换行符是'\r\n': package kddcup ...
- java读取大文件 超大文件的几种方法
java 读取一个巨大的文本文件既能保证内存不溢出又能保证性能 import java.io.BufferedReader; import java.io.File; import jav ...
随机推荐
- iOS类型的转换
1.NSData和NSString的转换: - (void)viewDidLoad { [super viewDidLoad]; // 字符串 NSString *str = "; NSLo ...
- 强大的BeautifulSoup
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库·它能够通过你喜欢的转换器实现惯用的文档导航 安装BeautifulSoup 推荐使用Beautiful Sou ...
- 图片和Base64字符串互转
图片URL转成Base64字符串 /// <summary> /// 通过Url获取到Image格式的文件 /// </summary> /// <param name= ...
- Goland 开发插件安装
goland 是一款非常优秀的开发工具,默认打开后,发白的开发界面,也是异常刺眼.但是 Goland 为我们准备了很多插件,要优先安装这些插件,打造适合自己的开发界面. 我自己的设置的主题界面如下: ...
- PJzhang:python基础入门的7个疗程-three
猫宁!!! 参考链接:易灵微课-21天轻松掌握零基础python入门必修课-售价29元人民币 https://www.liaoxuefeng.com/wiki/1016959663602400 第七天 ...
- 电脑的sid
SID的查询方法:1.Win键+R键,打开运行,输入CMD2.输入:whoami /user3.就可以看到本机的SID了 SID的修改方法1.下载NewSID软件,并打开 2.可以指定一个SID,也可 ...
- C学习笔记-结构体与二进制文件增删改查
使用结构体整理数据,然后利用二进制存储文件,这样存储的文件类似于数据库,可以实现文件的增删改查 定义结构体 struct student { unsigned int ID; char name[20 ...
- Centos 安装k8s 集群(单master开发环境)
本教程是在VM中搭建K8s 所以第一步骤先配置虚拟机的ip 和上网情况详细参考https://www.cnblogs.com/chongyao/p/9209527.html 开始搭建K8s集群 两台机 ...
- 建立EF访问数据库架构时,出现One or more validation errors were detected during model generation
原因是因为我在写实体类的时候没有为实体类中的属性声明一个主键,即用[key]特性标注在属性上,这样DbContext才能为我们在数据库上找到对应的主键 using System.ComponentMo ...
- flask的方法视图
from flask import Flask,views,render_template,request app = Flask(__name__) app.debug = True class L ...