`
lin358
  • 浏览: 62692 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

利用缓存读取文件提高性能

    博客分类:
  • j2se
阅读更多
前段时间写了个程序需要对文件进行读取操作,一开始使用最普通的写法
		FileReader in = new FileReader("E:/a.html");
		BufferedReader br = new BufferedReader(in);
		String string="",str="";
		while((string=br.readLine())!=null){
			str+=string;
		}
		System.out.println(str);

但是当正式开始运行的时候发现用是可以用但效率过于低下(因为每次运行都要读取几十甚至上百个的文件,所以效率问题很明显),所以就上网搜索了一些提高IO流的资料,发现大多数都是说使用缓存,于是就上网搜了一段代码
     * 使用缓存区读写文件  
     * @param from  
     * @param to  
     * @throws IOException  
     */  
    public static void readWriteWithBuffer(String from, String to)   
            throws IOException {   
        InputStream inBuffer = null;   
        OutputStream outBuffer = null;   
        try {   
            inBuffer = new BufferedInputStream(new FileInputStream(from));   
            outBuffer = new BufferedOutputStream(new FileOutputStream(to));   
            while (true) {   
                int data = inBuffer.read();   
                if (data == -1) {   
                    break;   
                }   
                outBuffer.write(data);   
            }   
        } finally {   
            if (inBuffer != null) {   
                inBuffer.close();   
            }   
            if (outBuffer != null) {   
                outBuffer.close();   
            }   
        }   
    }   
  
}

但发现无法直接将字符串存入内存进行其他操作,于是又搜索了一些资料,发现原来只要用byte转一下即可,最终代码如下
		File file = new File( "E:/a.html");
		InputStream input = null;
		input = new FileInputStream(file);
		String str = "";
		byte[] b = new byte[(int)file.length()];
		input.read(b);
		input.close();
		str=new String(b);
		System.out.println(str);
2
3
分享到:
评论

相关推荐

    FancyCache 将系统内存或闪存虚拟成硬盘缓存的软件

    由此可见,从缓存读取的数据量越多,则系统性能提升的越多。 FancyCache Principle Fig. 1 FancyCache Principle Fig. 2 主要特性 支持 LRU (最近最少使用调度算法) 和LFU (最近最不常用调度算法) 缓存算法, 支持 ...

    硬盘缓存增强软件 PrimoCache Desktop Edition 3.0.2 中文多语免费版.zip

    由此可见,从缓存读取的数据量越多,则系统性能提升的越多。 主要特性列表 支持物理内存、SSD固态硬盘、闪存盘等作为缓存设备, 采用双级缓存系统架构, 支持永久二级缓存, 支持“直接写入”和“延迟写入”两种...

    提高IIS网站服务器性能2点考虑(缓存+gzip)

    对于静态文件启用内容过期可以提高访问性能。首先网站的目录要划分合理,图片、CSS、JavaScript均放在单独目录下,然后在IIS中选择目录,点属性-HTTP头,启用内容过期,可以选择30天后过去,这样,用户浏览器将比较...

    php-redis-read-replicas:使用 Redis 读取副本(例如 AWS ElastiCache)来扩展读取性能

    此类的目的是利用 AWS ElastiCache(或类似的)中的 Redis 读取副本来扩展读取性能。 但请记住,由于 Redis 复制是异步的,因此您需要以对最终完整数据感到满意的方式来构建应用程序。 例如,从辅助节点读取用户...

    Linux内核的文件预读.pdf

    预读算法在磁盘这一层次尤为重要,因为磁盘的机械臂 + 旋转盘 片的数据定位与读取方式,决定了它最突出的性能特点:擅长顺序读写,不善于随机 I/O,I/O 延迟非常大。 Linux 内核的文件预读从寄存器、L1/L2高速缓存...

    NET C# 读取纯真 IP 数据库

    不同于网上现有的代码,本代码经本人重新编写,利用缓存 qqwry.dat 文件索引区或全部缓存提升性能(缓存占用 3M 或 8M 左右内存),并支持多线程(多个实例)共享一份缓存数据。资源中包括示例代码和 qqwry.dat ...

    rar压缩软件.rar

    Windows 的版本 RAR 从 rar.ini 文件读取配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: switches=任何 RAR 开关,用空格分开 例如: switches=-m5 -s 环境变量 ~~~~~~~~ ...

    LoadRunner性能测试工具实战视频教程【全套26集】

    LoadRunner性能测试工具实战视频教程【全套26集】 随机函数 在软件测试工具中如何巧用LoadRunner的随机函数。 LoadRunner有自带的随机函数,如果...要提高性能,可增加磁盘 16. 网络吞吐量 Network Interface / Byt

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    基于Misty1算法的加密软件(JAVA)的实现.rar

    缓存优化:利用缓存技术减少密钥生成和子密钥混淆置换等耗时操作的重复计算,提高算法的执行效率。 通过以上设计与实现,基于Misty1算法的加密软件能够为用户提供安全、可靠的文件加密和解密功能,保护用户的数据...

    文件服务器建设方案.doc

    在数据传输的过程中,除了具有一定的数据处理能力,文件缓存的空间即内存的大 小,在一定程度上决定了文件传输的速度,8G的内存在目前来说可以满足需 1. 服务器配置。 基于对第一部分所描述需求的分析,需要对服务器...

    protodatastore-cpp:具有内存缓存的简单文件支持原型

    具有内存缓存的简单文件支持原型。 特征 初次读取性能后,将原型缓存在RAM中。 使用校验和来验证数据的完整性。 利用现代错误处理和内存管理。 用法 # include " protostore/file-storage.h " # include " ...

    SuperCache II and SuperVolume Desktop Edition 1.1.16.0汉化版

    SuperCache II是一个用内存来保存读过的硬盘数据的软件,也即是硬盘的Cache,它将计算机由硬盘读取过的文件保存在指定的内存中,下次计算机再读这些文件时,不是由硬盘读取,而是由内存中读取,加快了文件的读取速度...

    mysql数据库my.cnf配置文件

    # 为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3 innodb_max_dirty_pages_pct = 90 # innodb主线程刷新缓存池中的数据,使脏数据比例小于90% innodb_lock_wait_timeout = 120 # InnoDB事务在...

    【资源分享】9大方法优化Windows系统内存

    因为硬盘读取数据是靠磁头在磁性物质上读取,页面文件放在磁盘上的不同区域,磁头就要跳来跳去,自然不利于提高效率。而且系统盘文件众多,虚拟内存肯定不连续,因此要将其放到其他盘上。改变页面文件位置的方法是:...

    SQL查询安全性及性能优化

     由于返回的数据量减少,IO性能提高了  前提:必须知道要返回的行数 select字段需要多少提取多少  按需检索字段,少使用Select *  使用*,返回了很多不需要的字段,增加IO负担。  使用*,由于没有明确指定...

    rails-memcache-dalli:在Rails应用程序中使用Dalli使用Memcache实现缓存

    假设我们有一个带有流行页面的Rails应用程序,该页面加载缓慢并且我们希望提高其性能。 最有效的方法之一是使用缓存。 过去,我们讨论了各种缓存技术,但我们没有谈论的一件事是缓存的存储位置。 Rails的缓存存储...

    oracle动态性能表

    这完全有可能因为多数操作系统都有缓存文件,可能是那些块在被读取。块也可能存于磁盘或控制级缓存以再次避免实际I/O。Oracle报告有物理读也许仅仅表示被请求的块并不在缓存中。 由V$SYSSTAT得出实例效率比...

    基于SpringBoot+Mybatis开发的主从架构的Steam商城,详情请看README+源代码+文档说明+数据库sql

    * 为了更好地加快性能,在redis缓存层之上加了加了一层本地的缓存 ## 3.秒杀功能 原理:尽量减少Mysql的访问 * 将先将需要秒杀的数据缓存在Redis中,在秒杀接口里做预减少库存 * 判断秒杀订单里有无对应的信息,有...

    MongoDB安装教程

    它使用内存映射文件的方式进行数据存储,可以利用操作系统的缓存机制来提高读取性能。此外,MongoDB还支持水平扩展,可以通过添加更多的节点来增加系统的处理能力,从而满足大规模数据处理的需求。 MongoDB具有高...

Global site tag (gtag.js) - Google Analytics