- 浏览: 506311 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (200)
- java基础 (30)
- ajax (19)
- 乱写 (5)
- groovy (2)
- db (8)
- gwt (0)
- jee (2)
- 我关注的开源 (1)
- RIA AIR (1)
- spring (11)
- lucene (0)
- 工具 (10)
- 百科 (2)
- linux (6)
- android (40)
- 移动开发 (21)
- 代码片断 (15)
- tomcat (1)
- css (1)
- html5 (2)
- jquery (2)
- playframework (3)
- web (2)
- nio (3)
- design (1)
- nosql (3)
- 日志 (12)
- mysql (4)
- 图表 (1)
- python (3)
- ruby (1)
- git (0)
- hibernate (1)
- springboot (1)
- guava (1)
- mybatis (0)
- 工作问题 (3)
- php (1)
最新评论
-
linzm1990:
踩了很多坑啊。。。。
hibernate @Nofound 与@ManyToOne fetch lazy的问题 -
Ccccrrrrrr:
...
转: Spring boot 文件上传 -
rmzdb:
兄弟,你这个东西,在ie内核的浏览器,貌似不识别 文件名
工作问题:http下载文件,中文文件名在firefox下乱码问题 -
107x:
问题解决了,谢谢!
工作问题:http下载文件,中文文件名在firefox下乱码问题 -
klxqljq:
额鹅鹅鹅
android布局实现头尾固定, 中间多余内容可以滚动
利用正则表达式查找一系列文件,类似于grep功能. 演示了 NIO mapped byte buffers, charsets, and regular expressions
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.CharBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; /** * User: wenzhihong * Date: 12-2-23 * Time: 上午10:06 */ public class Grep { private static Charset charset = Charset.forName("utf-8"); private static CharsetDecoder decoder = charset.newDecoder(); private static Pattern linePattern = Pattern.compile(".*\r?\n"); private static Pattern pattern; public static void main(String[] args) { if (args.length < 2) { System.err.println("Usage : java Grep pattern file..."); return ; } compile(args[0]); for (int i = 1; i < args.length; i++) { File f = new File(args[i]); try { grep(f); } catch (IOException e) { System.err.println(f + ":" + e); } } } private static void grep(File f) throws IOException { //取得 FileChannel FileInputStream fis = new FileInputStream(f); FileChannel fc = fis.getChannel(); // Get the file's size and then map it into memory int sz = (int) fc.size(); MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, sz); //把 字节buffer decode 成 charBuffer CharBuffer cb = decoder.decode(bb); grep(f, cb); fc.close(); } private static void grep(File f, CharBuffer cb) { Matcher lm = linePattern.matcher(cb); //line matcher Matcher pm = null; //pattern matcher int lines = 0; while (lm.find()){ lines++; CharSequence curLineCs = lm.group();//the current line if (pm == null){ pm = pattern.matcher(curLineCs); } else { pm.reset(curLineCs); } if (pm.find()){ System.out.println(f + ":" + lines + ":" + curLineCs); } if (lm.end() == cb.limit()) { //文件最后 break; } } } private static void compile(String pat) { try { pattern = Pattern.compile(pat); } catch (PatternSyntaxException e) { System.err.println(e.getMessage()); System.exit(1); } } }
发表评论
-
ChartDirectorvk如何测试文本的长度跟宽度
2012-11-30 15:53 1137在使用charDirector画图时, 要确定setPlotA ... -
Java调用外部程序技巧
2012-08-24 13:43 1323http://www.yankay.com/java%E8%B ... -
java中的协变
2012-08-14 09:10 1156协变是指一个类型随着它关联的类型一起变化,有点抽像,java中 ... -
jdbm
2012-07-11 15:20 1335jdbm4也发布部分代码了, ... -
并发--Effective Java的一小段代码
2012-02-20 17:14 1207import java.util.concurrent.T ... -
JAVA使用EPoll来进行NIO处理的方法
2012-02-14 09:20 1033JDK 6.0 以及JDK 5.0 update 9 的 ni ... -
java里的枚举
2011-12-30 15:03 1163参考: http://www.ibm.com/develope ... -
项目中用到的一个小工具类(字符过滤器)
2011-10-25 09:08 1058见: http://javatar.iteye.com/blo ... -
下载处理Servlet工具类
2011-10-25 09:06 959转自 http://javatar.iteye.com/blo ... -
局部类访问外部final变量
2011-01-26 12:21 1149在局部类, 我们要更新封闭作用域用的变量, 这一般来说是不容易 ... -
tomcat开启gzip
2011-01-21 13:46 1210在conf/server.xml中找到第一个Connector ... -
maven中国地址
2011-01-06 13:37 3335maven的中国mirror <mirror> ... -
java范型小记
2010-12-18 17:51 01. Collections.<String>em ... -
jsp里的${}和jquery template的${} 怎么样转义
2010-12-16 14:38 4806ttp://www.infoq.com/cn/news/201 ... -
正则表达式
2010-11-30 08:27 1393由于项目中需要用到正则表达式,再一每次使用正则表达式时都要查资 ... -
Java Web 应用程序的字符编码问题
2010-11-30 08:13 1105Java Web 应用程序经常会出现乱码的情况,这里可以通过 ... -
异常的限制
2010-11-30 08:09 1068java 程序声明异常时,父类的某个方法声明了异常的抛出,那 ... -
JVM参数调优(带JMX)
2010-09-09 08:48 1392JAVA_OPTS='-d64-Djava.rmi.serve ... -
java Bridge method
2010-08-06 15:15 2314bridge method may be create ... -
tomcat SEVERE: StandardServer.await: create[8005] : java.net.BindException: Cann
2010-04-16 09:16 3591今天在启动tomcat时发现 Apr 16, 2010 8: ...
相关推荐
本话题聚焦于如何使用Java编程语言来实现`grep`的功能。让我们深入探讨这个过程,以及Java如何为这个任务提供支持。 首先,理解`grep`的基本原理至关重要。`grep`命令接受一个或多个模式(通常是正则表达式),然后...
### Linux下使用ext3grep恢复文件 #### 一、引言 在Linux系统中,误删文件或数据丢失是常见的问题之一。对于采用ext3文件系统的磁盘分区来说,使用`ext3grep`这一工具可以有效地帮助我们恢复已删除的文件。本文将...
### Linux中利用grep命令检索文件内容详解 #### 前言 在Linux系统中,进行文件内容搜索是一项常见的任务。为了高效地完成这项任务,Linux提供了多种工具,其中`grep`命令是最为常用的一种。本篇文章将深入探讨如何...
在"filegrep.m"这个源代码文件中,我们可以看到MATLAB脚本实现的grep功能。这个脚本可能包括以下关键部分: 1. **用户界面设计**:MATLAB的GUIDE工具可以用来创建GUI,包括输入框、按钮和文本区域等组件,让用户...
Linux中的grep命令是一个非常强大的文本搜索工具,用于搜索文件中符合特定模式的字符串。以下是对文档中grep命令相关知识点的详细说明: 1. grep命令的结构和基本用法 grep的基本语法是:grep [options] pattern ...
- **内存映射文件 (Memory-Mapped Files)**:探讨了如何利用内存映射文件来提高文件读写的性能。 - **SocketChannel**:介绍了 SocketChannel 的使用,这是在网络编程中常用的一种 Channel。 - **管道 (Pipes)**:...
`grep` 命令因其高效性和灵活性而在 Linux 和 Unix 系统中广泛使用。本文旨在全面解析 `grep` 的各种功能和用法,帮助用户更好地理解和掌握这一工具。 #### 二、基本概念 `grep` 支持多种类型的搜索模式,包括基础...
根据给定的信息,本文将详细解析一个类似于`grep`功能的Lisp程序,并结合描述中的内容,探讨如何在Common Lisp环境中实现字符串处理以及文件的输入输出操作。 ### 1. Common Lisp简介 Common Lisp是一种高级的、...
`grep` 是 Linux 下一款强大的文本搜索工具,可以在文件中搜索固定字符串或者使用正则表达式搜索,是日常开发、运维工作中非常实用的一个命令。本文将详细介绍 `grep` 的常用选项及其功能。 #### 1. 基本概念 `grep...
在使用这个压缩包"adb-tools(adb+grep)"时,首先需要将其解压,然后将包含ADB工具的目录添加到系统的PATH环境变量中,这样就可以在命令行窗口中直接调用ADB命令了。确保设备已开启USB调试,并连接到电脑,就可以开始...
首先,Java解析APK主要依赖于对ZIP文件格式的理解,因为APK本质上就是一个ZIP文件,其结构遵循特定的Android规范。你可以使用Java内置的`java.util.zip`包来读取和解压APK,然后提取所需的元数据。以下是一些关键...
标题中的“windows 下的grep,转贴”表明我们要讨论的是如何在Windows操作系统中使用grep命令,这个命令通常在Unix或Linux环境中用于搜索文本文件中的特定模式。在Windows中,由于默认命令行环境(CMD)不支持grep,...
【Linux系统指令:文件内容查询工具Grep】 Grep是一个在Linux系统中广泛使用的文本搜索工具,它基于正则表达式,能够高效地在文件内容中查找匹配的文本行。这个强大的工具是GNU项目的一部分,提供了更丰富的功能,...
使用 grep 命令搜索多个字符串可以使用多条件搜索模式,语法如下:`# grep 'pattern1\|pattern2' file`。当使用基本正则表达式时,需要使用 `\` 转义符为 `|` 管道符转义。如果使用扩展模式,可以添加 `-E` 参数。...
5. **行号和偏移量**:`grep`的`-n`选项打印匹配行的行号,`-b`选项打印匹配行的字节偏移量,这需要对文件内容的读取和处理有所了解。 6. **性能优化**:`grep`可以通过并行处理(`-P`选项)来加快搜索速度,特别是...
"windows系统grep命令.7z"就是这样一个工具,它允许你在Windows中使用`grep`命令,从而实现跨平台的文本搜索功能。 `grep`(global regular expression print)命令是Linux和Unix系统中用于搜索含有特定模式的文本...
3. **使用文件作为模式**:`grep -f pattern_file file` 可以从pattern_file中读取模式,每个模式占一行。 通过学习并熟练运用`grep`命令,不仅可以提高在大量文本数据中查找特定信息的效率,还能为日后的Linux系统...
Linux 中 grep 命令的使用 grep 命令是 Unix家族中的一种强大的文本搜索工具,能够使用正则表达式搜索文本,并把匹配的行打印出来。grep 命令的全称是 Global Regular Expression Print,表示全局正则表达式版本,...
- **组与引用**:括号`()`用于创建组,反斜杠加数字`\n`用于引用组,但直接在`grep`中使用较为复杂,通常在构造复杂正则时才会用到。 #### 五、示例与实践 - **案例1**:查找包含“man”但不包括“Batman”和...