- 浏览: 300380 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (187)
- JAVA (66)
- JS (2)
- AJAX (9)
- Servlet (5)
- eclipse (4)
- html (2)
- PL/SQL (9)
- SOAP (1)
- other (14)
- JavaScript (8)
- Struts2 (6)
- Spring (10)
- Hibernate (5)
- JSP (1)
- Linux (3)
- WebService (2)
- 数据结构 (1)
- DB (5)
- English (1)
- maven (4)
- Code standard (2)
- SQL (1)
- 软件架构 (1)
- Tomcat (2)
- windows (1)
- HSQL (0)
- Open source framework (0)
- Web (6)
- Compass (0)
- Flex (1)
- OSGI (1)
- python (3)
- groovy (2)
- JPA (2)
- svn (1)
- jetty (1)
最新评论
-
zjfshowtime:
it doesn't work !why
Tomcat 和 Jetty 下 JNDI 配置 DBCP 连接池 -
coco5012:
Useful
sql server日期时间函数 datetime -
烟花弥散:
弱弱的问一句,您的第一个举例中else 后面可以跟判断条件吗? ...
Java高手论道:你还在用if else吗? -
coco5012:
Not very simple
使用assembly plugin实现自定义打包 -
mqlfly2008:
[color=red][size=medium][size=x ...
Java高手论道:你还在用if else吗?
/** * */ package com.b2s.report.tool.util; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public class ReadBig { public static String fff = "D:\\report\\inbound\\Citi_OrderLines.csv"; public static void main1(String[] args) throws Exception { final int BUFFER_SIZE = 0x300000;// 缓冲区大小为3M File f = new File(fff); /** * map(FileChannel.MapMode mode,long position, long size) mode - * 根据是按只读、读取/写入或专用(写入时拷贝)来映射文件,分别为 FileChannel.MapMode 类中所定义的 * READ_ONLY、READ_WRITE 或 PRIVATE 之一 position - 文件中的位置,映射区域从此位置开始;必须为非负数 * size - 要映射的区域大小;必须为非负数且不大于 Integer.MAX_VALUE * 所以若想读取文件后半部分内容,如例子所写;若想读取文本后1 * /8内容,需要这样写map(FileChannel.MapMode.READ_ONLY, * f.length()*7/8,f.length()/8) * 想读取文件所有内容,需要这样写map(FileChannel.MapMode.READ_ONLY, 0,f.length()) */ MappedByteBuffer inputBuffer = new RandomAccessFile(f, "r").getChannel().map(FileChannel.MapMode.READ_ONLY, f.length() / 2, f.length() / 2); byte[] dst = new byte[BUFFER_SIZE];// 每次读出3M的内容 long start = System.currentTimeMillis(); for (int offset = 0; offset < inputBuffer.capacity(); offset += BUFFER_SIZE) { if (inputBuffer.capacity() - offset >= BUFFER_SIZE) { for (int i = 0; i < BUFFER_SIZE; i++) dst[i] = inputBuffer.get(offset + i); } else { for (int i = 0; i < inputBuffer.capacity() - offset; i++) dst[i] = inputBuffer.get(offset + i); } int length = (inputBuffer.capacity() % BUFFER_SIZE == 0) ? BUFFER_SIZE : inputBuffer.capacity() % BUFFER_SIZE; System.out.println(new String(dst, 0, length));// new // String(dst,0,length)这样可以取出缓存保存的字符串,可以对其进行操作 } long end = System.currentTimeMillis(); System.out.println("读取文件文件一半内容花费:" + (end - start) + "毫秒"); } public static void main(String[] args) throws Exception { int bufSize = 1024; byte[] bs = new byte[bufSize]; ByteBuffer byteBuf = ByteBuffer.allocate(1024); FileChannel channel = new RandomAccessFile(fff, "r").getChannel(); while (channel.read(byteBuf) != -1) { int size = byteBuf.position(); byteBuf.rewind(); byteBuf.get(bs); // 把文件当字符串处理,直接打印做为一个例子。 System.out.print(new String(bs, 0, size)); byteBuf.clear(); } } public static void main2(String[] args) throws Exception { BufferedReader br = new BufferedReader(new FileReader(fff)); String line = null; while ((line = br.readLine()) != null) { System.out.println(line); } } }
发表评论
-
JAVA ArrayList深层 拷贝 克隆
2012-04-23 14:13 2493大家应该理解浅拷贝和深拷贝的区别: 浅拷贝:被复制对象的任何 ... -
深入 Lucene 索引机制
2011-09-21 21:49 576简介: Lucene 是一个 ... -
Apache DBUtils使用总结
2011-09-19 10:50 939Apache DBUtils使用总结 DBU ... -
Java搜索引擎 Lucene
2011-09-19 10:43 837Lucene 是一套用于全文 ... -
Java的弱引用(Weak Reference)
2011-09-16 08:47 1290之前一直没有接触 ... -
Java性能优化技巧
2011-09-06 11:59 846摘要: ==================== ... -
java程序性能优化
2011-09-06 11:58 656一、避免在循环条件中使用复杂表达式 在不做编译优化 ... -
大家在普遍认识中对架构师这一职业有哪些误区
2011-09-04 10:26 713误区一 架构师与项目经理没有区别。大家经常在 ... -
Ibatis执行SQL操作把SQL打印到控制台
2011-08-10 10:46 2740要想让Ibatis打印SQL语句到控制台,可以在log4j.x ... -
用 PMD 铲除 bug
2011-06-08 17:33 987简介: PMD 是一个开源的静态分析工具,是一个值得您添加 ... -
Web Service 实现分布式服务的基本原理
2011-05-24 13:27 1454简单的说, 就是客户端 ... -
Web Service概述
2011-05-24 10:16 969Web Service是构建互联网 ... -
有关母亲的名人名言
2011-05-09 08:42 770God could not be everywhere and ... -
装饰器模式[Decorator]
2011-05-06 17:42 681装饰器模式 主要应用于这样一种场合,当你已经 ... -
Java 7已经完成的七大新功能预览
2011-05-06 12:26 1107今年的Devoxx大会又是一次有关Java 7进程的一 ... -
回归测试
2011-05-04 17:16 759回归测试, 英文是Regression testing。 ... -
jxl 使用总结收藏
2011-04-29 17:33 925jxl的一些总结 要 ... -
Struts1下如何实现国际化
2011-04-25 14:18 1097Struts1下如何实现国际化 1.ApplicationR ... -
JAVA静态导入(import static)详解
2011-04-20 17:52 3968在Java 5中,import语句得到了增强,以便提供甚至更加 ... -
java类型后添加三点的用法
2011-04-20 17:46 1106今天看到一个没见过的函数参数列表test(int... a), ...
相关推荐
Java读取大文件的处理
java读取大文件
java读取大文件大全
java按行读取大容量文本文件,并按行解析入库。使用java.nio下面的相关方法
java读取TXT文件入库,java读取TXT文件入库,java读取TXT文件入库,
java读取局域网共享机器文件 java读取局域网共享机器文件
java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件 java读写xml文件
java读取mpp文件,来生成mpp文件的jar包。
下面小编就为大家带来一篇完美解决java读取大文件内存溢出的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...
java读取txt文件,可以以文件路径构造这个流,:FileInputStream fin = new FileInputStream("d:/test.txt"); 然后使用这个流直接读取到文件,再使用reader构造BufferedReader,按行读取一整行的文本,作为字符串返回...
java读取配置文件 在经常更换的一些东西 就可以用配置文件
java读取文件方法大全 读取file流等技术
java读取大文件上G级的,废话不多说,直接上代码。
java通过snakeyaml类能非常方便的操作,读写yaml文件。
java读取本地.db文件简单方法,sqlite数据库类型文件获取数据
java 按顺序读取文件 java 按顺序读取文件 java 按顺序读取文件
java读取超大文本文件,java读取超大文本文件,java读取超大文本文件,java读取超大文本文件
java 读取PDF文件中的内容 java 读取PDF文件中的内容
java读取属性文件通用方法,以及日志记录