package ewanbao.mydomain.com;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class ReadHugeFile {
public static void main(String[] args) {
/* check the argument */
if(args.length != 2){
System.out.println("java ewanbao.mydomain.com.ReadHugeFile" +
" [Input File Name]" +
" [Output File Name]");
System.exit(0);
}
BufferedWriter writer = null;
try{
/* prepare the output */
writer = new BufferedWriter(new FileWriter(args[1]));
/* prepare the input */
String strBuf = "";
int bufsize = 1024;
byte[] bs = new byte[bufsize];
ByteBuffer byteBuf = ByteBuffer.allocate(bufsize);
FileChannel channel = new RandomAccessFile(args[0], "r").getChannel();
while(channel.read(byteBuf) != -1){
/* read the content to byte array */
int size = byteBuf.position();
byteBuf.rewind();
byteBuf.get(bs);
byteBuf.clear();
String tempString = new String(bs, 0, size);
int fromIndex = 0;
int endIndex = 0;
while((endIndex = tempString.indexOf("/n", fromIndex)) != -1){
String line = tempString.substring(fromIndex, endIndex);
line = new String(strBuf + line);
writer.write(line);
writer.newLine();
strBuf = "";
fromIndex = endIndex + 1;
}
strBuf = tempString.substring(fromIndex, size);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(writer != null){
try{
writer.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
java按行读取大容量文本文件,并按行解析入库。使用java.nio下面的相关方法
java 按顺序读取文件 java 按顺序读取文件 java 按顺序读取文件
本类,是专门为了处理大文件,按行读取开发的类。 采用读文件的缓存 fbb 1024*5 行缓存 bb 256 字节 设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件...
java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取...
本类,是专门为了处理大文件,按行读取开发的类。 采用读文件的缓存 fbb 1024*5 行缓存 bb 256 字节 设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 ...
JAVA简单的读写文本文件的代码JAVA简单的读写文本文件的代码
Java多线程读大文件 java多线程写文件:多线程往队列中写入数据
使用nio byteBuffer 实现按行读取文件(大文件) 在window/linux/macOS上均测试通过 对于中文乱码也已处理成功 完整注释,可随需求更改 有问题请邮件:mly610865580@126.com
Java多线程读取大文本文件并批量插入MongoDB的代码,文本文件,csv文件,可以结合POI改造使其支持excel。 适合做大量文本数据或日志文件入库的场景,大文本被拆分成多个线程处理,速度快。 批量插入MongoDB,存在则...
java 删除某行和读写txt文件 java中貌似没有直接删除某行的方法,这里用的方法是把文件里的内容读出来,写入一个String里,(不要的那行找到,不要写入String),然后再重新写入文件
java读取文本文件,java读取文本文件,java读取文本文件
java中用FileUtil实现文件读写
java读取超大文本文件,java读取超大文本文件,java读取超大文本文件,java读取超大文本文件
java如何读取文件 。把固定的文件读取到程序中来。
读取文件中的二进制文件并将二进制转换成文本文档并输出
Java 读取文件操作 java中多种方式读文件 一、多种方式读文件内容。 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容
java读取局域网共享机器文件 java读取局域网共享机器文件
java读取文件方法大全 读取file流等技术
Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...
2. 将内容中的文本写到文件 3. 将一个文件的内容读出来写入另一个文件中 同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流) 三个例子可以独立存在,所以根据需要只看其中一个就行了