java-处理大容量文本文件,行内分格符为TAB的方法
以处理某sql文件为例
源文件中行格式为:
123456 7895433 xxxxx yyyyy zzzzz
行间分隔符为 TAB.
转换完后文件中行的格式为:
123456,7895433,xxxxx,yyyyy,zzzzz
package tool; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter; public class TransferFile { public static void main(String[] args) throws IOException
{
File f=new File("F:/mernis/data_dump.sql");
File filewrite=new File("F:/mernis/mernis-test.txt");
int count=0;
if(f.exists())
{
FileReader read=new FileReader(f);
BufferedReader buff=new BufferedReader(read);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filewrite, true)));
boolean isEnd=false;
int i=0;
while(!isEnd)
{
String line;
i++;
try {
line = buff.readLine();
if(line==null)
{
isEnd=true;
}
else
{ if (i>=76&&i<=49611784)
{
String[] lineArr = line.split("\\t");
String newline="";
for (int j = 0; j < lineArr.length; j++) {
if (j<lineArr.length) {
newline=newline+lineArr[j]+",";
}
else
newline=newline+lineArr[j];
}
out.write(newline+"\r\n");
}
count++;
// if (i==100) {
// return ;
// }
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } System.out.println("文件共有"+count+"行");
buff.close();
out.close(); }
else
{
System.out.println("你输入的文件不存在,请正确使用:");
} }
}
TransferFile.java
其中关键代码为:
String[] lineArr = line.split("\\t");
String newline="";
for (int j = 0; j < lineArr.length; j++)
{
if (j<lineArr.length)
{
newline=newline+lineArr[j]+",";
}
else
newline=newline+lineArr[j];
}
过程中曾尝试用line.replace("\\t",",")的方法将TAB替换为",",但是始终不成功,所以这里采用先用TAB分割字符串,再用逗号连接的方式。
java-处理大容量文本文件,行内分格符为TAB的方法的更多相关文章
- java读取大容量excel之二(空格、空值问题)
最近在项目中发现,对于Excel2007(底层根本是xml) ,使用<java读取大容量excel之一>中的方式读取,若待读取的excel2007文件中某一列是空值,(注意,所谓的空值是什 ...
- Java读写大文本文件(2GB以上)
如下的程序,将一个行数为fileLines的文本文件平均分为splitNum个小文本文件,其中换行符'r'是linux上的,windows的java换行符是'\r\n': package kddcup ...
- java的基础语法(标识符 修饰符 关键字)
Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...
- atitit.高性能遍历 文本文件行 attilax总结
atitit.高性能遍历 文本文件行 attilax总结 文件读写有以下几种常用的方法 1 通常io读取2.5s 1 nio读取或许越高的.. 2 NIO通常采用Reactor模式,AIO通常采用Pr ...
- spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable
1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...
- Java语言中有4种访问修饰符
转载:http://wuhaidong.iteye.com/blog/851754 Java语言中有4种访问修饰符 在Java语言中有4中访问修饰符:package(默认).private.publi ...
- 用java实现从命令行接收多个数字,求和之后输出结果。
用java实现从命令行接收多个数字,求和之后输出结果. 1 设计思想: (1)建立类. (2)输出参数个数. (3)定义int型的num和sum,分别用来存储参数和参数的和. (4)用for循环讲参数 ...
- java的-D命令行参数 mvn -D参数
java的-D命令行参数 我们会用mvn启动一个应用,如下的命令行: MAVEN_OPTS="-XX:PermSize=256m -XX:MaxPermSize=512m" mvn ...
- Java SE7虚拟机指令操作码助记符
本文转载自Java SE7 虚拟机指令操作码助记符 导语 在Class文件中,Java方法里的方法体,也就是代表着一个Java源码程序中程序的部分存储在方法表集合的Code属性中.存储在Code属性中 ...
随机推荐
- golang 微服务以及相关web框架
golang 中国gocn golang Applicable to all database connection pools xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常 ...
- Django之模版层
一.模版简介 你可能已经注意到我们在例子视图中返回文本的方式有点特别,也就是说,HTML被直接硬编码在python代码之中. def current_datetime(request): now = ...
- P1012 拼数(JAVA语言)
//早起刷题傻一天 题目描述 设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数 ...
- 什么是SSR SSR有什么用 如何使用使用SSR
什么是SSR 以下信息来自维基百科: Shadowsocks(简称SS)是一种基于Socks5代理方式的加密传输协议,也可以指实现这个协议的各种开发包.当前包使用Python.C.C++.C#.Go语 ...
- python基础之流程控制(1)
一.分支结构:if 判断 1.什么要有if 判断语句? 让计算机可以像人一样根据条件进行判断,并根据判断结果执行相应的流程. 2.基本结构 单分支结构 # 单分支 if 条件1: 代码1 代码2 代码 ...
- Web安全(更新中)
sql注入 创建一个数据库 create database admin1; 查询数据库 查看所有数据库 show databases; 使用该数据库 use admin1; 创建一个表 创建一个 ...
- SQL语句练习(基础版)
最近在学习SQL基本语句的练习,在此分享一下笔者做过的练习以及个人的解决教程: 首先是基本练习表格的搭建,具体内容如下表所示: Snum Sname Ssex Sage Sphone Dname S0 ...
- 【Azure 微服务】Service Fabric中微服务在升级时,遇见Warning - System.Collections.Generic.KeyNotFoundException 服务无法正常运行
问题描述 使用.Net Framework 4.5.2为架构的Service Fabric微服务应用,在升级后发布到Azure Fabric中,服务无法运行.通过Service Fabric Expl ...
- 以Aliyun体验机为例,从零搭建LNMPR环境(下)
使用云服务器搭建 Web 运行环境,尤其是搭建常见的 LNMPR(Linux+Nginx+MySQL+PHP+Redis) 环境,对于开发人员是必备的职场基本技能之一.在这里,借着搭建我的" ...
- C语言-字符串函数的实现(一)之strlen
C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...