易截截图软件、单文件、免安装、纯绿色、仅160KB

Java读取大文件

遇到过这样一个情况,需要用java读取一个200M的文本格式文件,而且还需要对文件的内容做解析,进行分词。如果用JVM的默
认设置,利用Scanner类只能读出4M大小内容,于是我就在网上搜索,但是网上没有找到一篇文章是我所需要的内容。于是我只好翻thinking
in
java,发现了一个java的nio里有个MappedByteBuffer类,他的作用可以把一个文件映射到内存中,然后就能像访问数组一样去读取这
个文件。于是我在JDK中查了MappedByteBuffer的详细的用法,然后将其和Scanner类结合一下,便能得到一边读取大文件,一边解析读
取的内容了功能了,具体的代码如下:
public void readResource() {
   long fileLength = 0;
   final int BUFFER_SIZE = 0x300000;// 3M的缓冲
  
   for(String fileDirectory:this.readResourceDirectory())//得到文件存放路径,我这里使用了一个方法从XML文件中读出文件的
               //存放路径,当然也可以用绝对路径来代替这里的fileDriectory
   {
   File file = new File(fileDirectory);
   fileLength = file.length();
   try {
     MappedByteBuffer inputBuffer =
     new RandomAccessFile(file,"r").getChannel().map(FileChannel.MapMode.READ_ONLY, 0, fileLength);//读取大文件
    
     byte[] dst = new byte[BUFFER_SIZE];//每次读出3M的内容
    
     for(int offset=0; offset < fileLength; offset+= BUFFER_SIZE)
     {
       if(fileLength - offset >= BUFFER_SIZE)
       {
           for(int i = 0;i < BUFFER_SIZE;i++)
           dst
= inputBuffer.get(offset + i);
       }
       else
       {
     


相关文档:

Java异常处理总结

 转至:http://sllereak.blog.163.com/blog
--异常
 *异常是java提供的处理程序中运行时错误的一种机制
 *java程序在执行过程中如果出现异常,会生成一个异常类实例,该实例封装了异常的信息交给java运行时系统,这一过程叫抛出异常
 *当异常抛出时如果没有捕获那么java运行时默认的处理方式是将异 ......

JAVA中正则表达式的应用2

 public static void main(String[] args)
    {
        InputStream is = CommonUtil.getStream("http://wz.csdn.net/");
        String regex = "(?<=href=\")[^\"]*";//查找网页中所 ......

Java高级应用开发经验分享

Java的优点有: 跨平台性很强的,一次编译到处运行,一边编译一边执行, 不受病毒的干扰。但是美中不足,运行速度比C,C++ 等语言慢, 访问硬件底层比不上C++,C,一些应用需求却需要执行纯 Java 程序无法完成的一些任务。为此SUN公司为了突破JAVA的瓶颈, 就引入了JNI 的作用, JNI就是能够兼容C,扬长避短, 快速的访问硬 ......

Java相对路径总结

 1.基本概念的理解
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。
相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
Servl ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号