public class BigFileRead {
public static void main(String[] arg) {
try {
int bufSize=1024;
byte[] bs = new byte[bufSize];
ByteBuffer byteBuf = ByteBuffer.allocate(1024);
FileChannel channel = new RandomAccessFile("D:\\DOC_bao\\hyip_app_user_request_old.log","r").getChannel();
while(channel.read(byteBuf)!=-1){
int size = byteBuf.position();
byteBuf.rewind();
byteBuf.get(bs);
System.out.println(new String(bs,0,size,"GBK"));
byteBuf.clear();
}
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
}
//读取行(升级版)
public static void main(String[] arg) {
try {
Date start = new Date();
int count = 0;
int countLoop = 0;
String tailStr = "";
int bufSize = 1024 * 1024 * 20;
// int bufSize = 16;
byte[] bs = new byte[bufSize];
ByteBuffer byteBuf = ByteBuffer.allocate(bufSize);
// FileChannel channel = new RandomAccessFile("D:\\DOC_bao\\hyip_app_user_request_old.log","r").getChannel();
FileChannel channel = new RandomAccessFile("D:\\var\\log\\hyip\\hyip_app_user_request.log", "r").getChannel();
// FileChannel channel = new RandomAccessFile("D:\\DOC_bao\\hyip_app_user_request.log.2013-06-20", "r").getChannel();
while (channel.read(byteBuf) != -1) {
countLoop++;
int size = byteBuf.position();
byteBuf.rewind();
byteBuf.get(bs);
String bufferStr = new String(bs, 0, size, "utf-8");
if (bufferStr.indexOf("\n") >= 0) {
String[] b = bufferStr.split("\\n");
int len = b.length;
if (len > 0) {
b[0] = tailStr + b[0];
//如果最后一个是换行符,说明是整行,直接处理,否则放在临时变量里下次处理。
if (bufferStr.lastIndexOf("\n") == bufferStr.length() - 1) {
tailStr = "";
len++;
} else {
tailStr = b[len - 1];
}
for (int i = 0; i < len - 1; i++) {
count++;
// System.out.print(count + ":" + b[i]);
DBOperate(b[i]);
}
}
} else { //如果一行数据过大,超过缓冲区,就追加到临时变量里。
tailStr += bufferStr;
}
byteBuf.clear();
}
if (tailStr != null && tailStr.length() > 0) {
count++;
// System.out.print(count + ":" + tailStr);
DBOperate(tailStr);
}
Date end = new Date();
System.out.println(start);
System.out.println(end);
Long spendTime =end.getTime() -start.getTime();
System.out.println("spend time:"+spendTime+"");
System.out.println(count);
// System.out.println(countLoop);
} catch (IOException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
一、用JAVA完成了PDF读写(IText的应用) 加密PDF文件,引用到的JAR包是 bcprov-jdk15on-147 生成PDF文件,引用到的JAR包是itext5.5.1 项目文件为PDFText.java 主要实现功能: 1、创建一个PDF文件:HelloWorld.pdf,...
把一个大的文本文件按文件大小分成若干个小文件
Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,...
POI无法读取到word每一段所在的页码。我给出了代码和所有的解释,用POI读取word中的页码。也算是小方法了,基本很准确,为什么要加一个基本呢?因为,分页标志符号在第一行为空白行的时候没有分页符!!所以你的文档...
Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,...
简单的一个Java Applet的动态显示图片的小程序。将资源内的图片放置到E盘根目录下。如果想换图片,记得修改width和heigh的初始值,值为图片的宽和高。如果你对动画有兴趣,可以试着稍微修改一下本程序(程序里有相关...
java笔试题重复字符串句子生成器 使用马尔可夫链生成简单的英文文本。...对于本实验的几个部分,您的程序将读取一个文本文件。 读取文件的最简单方法是使用 Scanner 和名为 FileReader 的类,如下例
本篇文章主要介绍了JAVA中读取文件(二进制,字符)内容的方法总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
更改组建外观,对日历设置几个显示外观(lookandfeel.java);自定义对话框DialogWindows;制作欢迎界面SplashWindow.java; 10 java图形 一个圆形按钮,当单击按钮时颜色发生变化CircleButton.java; 捕捉屏幕相当于...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
4 1编程语言的几个发展阶段 4 1 1机器语言 4 1 2过程语言 4 1 3面向对象编程 4 2类 4 2 1类声明 4 2 2类体 4 2 3成员变量和局部变量 4 2 4方法 4 2 5方法重载 4 2 6构造方法 4 2 7类方法和实例方法 4 2 8值得注意的...