- 浏览: 467283 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
缓存和缓冲不同,缓存是用在多次操作时,他要占用比较大的内存,保存一些存取费时的但比较常用的数据。
以下是对文件读取使用缓存
缓存类Cache.java
测试类:
在运行一次或者输入文件较小时,差别不大
以下是对文件读取使用缓存
缓存类Cache.java
package useBuffer; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; public class Cache { private ArrayList list = new ArrayList(); //保存从文件中读取的内容 public Cache(File file){ try { FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String line ; while((line = br.readLine())!=null){ list.add(line); } br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public String getLine(int n){ if(n<0)return null; return (String) ((n<list.size())? list.get(n):null); } }
测试类:
package useBuffer; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CacheTest { private Cache cache; public static void main(String[] args) { CacheTest t = new CacheTest(); File file = new File("E:\\Eclipse workspace\\DataStructSample\\src\\useBuffer\\BufferTest.java"); long start = System.currentTimeMillis(); t.search1(file, "//.+"); //匹配注释 System.out.println("没有用缓存耗时:"+(System.currentTimeMillis()-start)+"MS"); start = System.currentTimeMillis(); t.search2(file, "//.+"); //匹配注释 System.out.println("用缓存耗时:"+(System.currentTimeMillis()-start)+"MS"); } public void search1(File file,String pattern){ //不使用缓存 try { FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String line; Pattern searched = Pattern.compile(pattern); Matcher lm; int lines = 0; //记录注释行数 while((line = br.readLine())!=null){ lm = searched.matcher(line); if(lm.find()) lines ++; } System.out.println(lines); br.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void search2(File file,String pattern){ //使用缓存, if(cache==null) cache = new Cache(file); String line; Pattern searched = Pattern.compile(pattern); Matcher lm; int i = 0; int lines = 0; while((line = cache.getLine(i++))!=null){ lm = searched.matcher(line); if(lm.find()) lines ++; } System.out.println(lines); } }
在运行一次或者输入文件较小时,差别不大
发表评论
-
数据库及struts面试题
2011-06-22 11:07 1059数据库部分 Q: What is SQL? ... -
EJB面试题
2011-06-22 10:54 1125Q: What are the different kinds ... -
java中的servlet面试题
2011-06-22 10:43 1109Q: Explain the life cycle metho ... -
java中JSP的面试题
2011-06-22 10:22 1542Q: What is a output comment? (可 ... -
java中的集合面试题
2011-06-22 10:12 720Q: What is the Collections API? ... -
彻底搞清楚java的内部类
2011-06-15 10:47 1504内部类允许在一个类中 ... -
细说java(java中的浮点数十六进制表示)
2011-06-12 16:48 3562java中浮点数不能用八进制表示,但可以用十六进制表示,只能用 ... -
SCJP试题
2011-06-09 16:14 1175package scjp; public class T ... -
java面试题解惑 之 继承、多态、重载、重写
2011-06-03 09:36 1299继承、多态、重载、重写 继承 java中有三种类:类,抽象类, ... -
java面试题解惑 之 多线程
2011-06-02 17:24 9901,多线程 线程或者说 ... -
java面试题解惑 之变量初始顺序,变量覆盖,字符串池,final,finally区别
2011-06-02 16:26 7971,变量初始化顺序 package com.qdu.sun; ... -
java解惑(Map的使用,静态导入方法,线程中断interrupted与线程死锁)
2011-05-17 12:38 1396Map的使用 package other; import ... -
java 继承的一个问题(想不明白)
2011-04-13 17:03 915java中的继承问题,以为是学会了java,结果最简单的一个j ... -
java解惑(谜题76。。)
2011-03-09 11:22 1221谜题76:乒乓public class PingPong { ... -
java解惑(谜题60,65)
2011-03-08 15:52 918一行以毙之 1,编写一个 ... -
java解惑(谜题66。。。)
2011-02-28 20:54 951谜题66:一件私事 class Base{ public ... -
java解惑(谜题61。。。)
2011-02-28 20:17 915谜题61:日期游戏 import java.util.Cal ... -
java解惑(谜题56到。。库之谜)
2011-02-28 19:41 858谜题56:大问题 import jav ... -
java解惑(谜题49。。)
2011-02-27 10:52 954谜题49:比生命更大 import java.util.Cal ... -
java解惑(谜题41到谜题)
2011-02-27 10:18 920谜题41:域和流 下面的 ...
相关推荐
java实现缓存可以通过读取本地文件的方式实现,改代码就是通过读取本地文件实现缓存的简单例子
在Java平台上,处理配置文件是开发过程中的常见任务。...综上所述,Java平台可以通过`ini4j`库轻松地读写INI配置文件,无论是本地还是网络上的文件。合理使用这些功能,可以帮助开发者更高效地管理和维护应用的配置。
JSP文件中的例子展示了如何使用`HttpSession`来保持用户会话,通过`getAttribute`和`setAttribute`方法来存储和读取数据。而Cookie则是一种客户端存储机制,通过设置`setDomain`和`setMaxAge`,可以在多个子域之间...
Java 缓存系统实战主要涉及的是使用 Memcached 这一开源缓存框架,它是一个高性能、分布式的内存对象缓存系统。Memcached 提供了 key-value 存储,旨在优化速度差异较大的硬件或软件之间的数据交互。以下是关于 ...
在Java编程语言中,文件读取是常见的任务,可以用于处理文本文件、二进制文件等。本篇文章将详细介绍四种不同的方法来读取文件内容,包括按字节、字符、行以及随机读取。 1. **按字节读取文件内容**: 这种方法...
这个"Servlet 文件上传下载例子"将演示这些概念的实际应用,帮助开发者了解如何在Java Web环境中处理文件操作。通过学习和实践,你可以创建一个可靠的文件服务器,支持用户安全、高效地上传和下载文件。
本篇文章将深入探讨如何在Java中读取XML配置文件,以及如何实现一个简易版的Spring框架。 首先,我们需要导入Java的DOM(Document Object Model)库,它提供了处理XML文档的标准API。在Java中,我们通常使用`javax....
1. **文件路径处理**:Java中的`java.io.File`类用于创建、读取、写入和删除文件或目录,处理路径名,并提供有关文件的基本信息。 2. **I/O流**:Java的I/O流系统是进行文件读写的核心,包括字节流(如`InputStream...
以下是一个简单的RMI文件读取服务的例子: 1. **服务端(Server)**: - 定义远程接口:创建一个名为`FileService`的接口,其中包含一个`readFile(String filePath)`方法,返回文件内容。 - 实现远程接口:创建一...
Java将图片数据读取到缓冲区中的例子,借助图像的缓冲区,可实现像素级的图像数据处理,是一种处理图片数据很实用的一种方法,可实现较为复杂的图像变换加工,本例只是演示如何创建图像缓冲区,并没有其它的任何图像...
### Java读写文件知识点详解 #### 一、Java文件读写的背景及基本概念 Java语言在设计之初,并未直接提供对文本文件处理的支持。为了填补这一空白,Java引入了`Reader`和`Writer`两个核心抽象类。这些类的设计是...
在Java编程环境中,Hadoop分布式文件系统(HDFS)提供了丰富的Java API,使得开发者能够方便地与HDFS进行交互,包括文件的上传、下载、读写等操作。本篇文章将详细探讨如何使用HDFS Java API来实现文件上传的功能。 ...
根据给定文件的信息,本文将详细介绍如何利用Java代码来实现从FTP服务器下载文件的过程,并对代码中的关键步骤进行深入解析。 ### Java下载FTP文件 在实际应用开发中,经常需要与FTP服务器进行交互,比如上传文件...
在本文中,我们将深入探讨如何使用科大讯飞的语音识别技术与Java编程语言结合,以实现将输入的音频文件转换为可编辑的文字内容。科大讯飞是中国领先的语音技术提供商,其API提供了高效且准确的语音转文本功能,广泛...
Java与Memcached的结合使用是分布式缓存领域中常见的技术实践。Memcached是一款高性能、分布式内存对象缓存系统,它可以将数据存储在内存中,从而加快读取速度,减轻数据库的负担。Java作为广泛使用的编程语言,有...
反序列化时,我们可以使用`ObjectInputStream`从文件中读取并还原List: ```java public static void loadCache() { try { ObjectInputStream ois = new ObjectInputStream(new FileInputStream("cache.ser")); ...
在这个例子中,我们看到一个关于如何在Delphi环境下使用DirectX SDK来读取`.X`模型文件的教程。`.X`文件格式是Microsoft DirectX提供的一种用于存储3D模型、动画和材质的数据格式。这种格式易于处理,适合初学者和...
本篇文章将深入探讨如何在Java中读取`.properties`文件,无论它们位于项目内部还是外部。 1. **不在项目中读取.properties文件** 当`.properties`文件位于项目的外部时,我们需要使用文件系统路径来访问它。下面...
这两个类是Java的IO库中的核心类,用于读取和写入文件。我们需要打开源文件的输入流,然后创建目标文件的输出流,通过字节流逐个读写数据。 2. 进度计算:为了实现进度条,我们需要知道文件的总大小,并跟踪已经...
Java文件的读写操作是Java I/O流中的基础内容,通常是指通过Java程序对文件系统中的文件进行读取和写入操作。在Java中,文件的读写通常使用java.io包中的相关类和接口来完成,其中最为常见的就是FileInputStream和...