设为首页 加入收藏

TOP

Java模拟Linux命令grep
2014-11-24 07:51:32 来源: 作者: 【 】 浏览:1
Tags:Java 模拟 Linux 命令 grep

算法非常简单,,这里直接上代码:



/**
* 模拟Unix命令grep操作,输出行号和行内容
* @param path 待查询的文件路径
* @param query 待查询的字符串
* @throws IOException


* */
public static void grep(String path,String query) throws IOException{
int lineno=0;
String line = null;

FileReader in=new FileReader(path);
BufferedReader br=new BufferedReader(in);
System.out.println("所需处理的文件:"+path);
System.out.println("行号-------------"+"包含' "+query+" '的行内容");

line=br.readLine();
while(line!=null){
lineno++;
if(line.indexOf(query)!=-1)
System.out.println(lineno+"---------------"+line);
line=br.readLine();
}
}


在junit4写测试代码如下:


//@Ignore
@Test
public void testGrep() throws Exception {
String query="链接";
String path="E:/greptest.txt";
StringUtil.grep(path,query);
}


对于如下的测试文件greptest.txt:


Java Servlet API中forward() 与redirect()的区别



前者仅是容器中控制权的转向,
在客户端浏览器地址栏中不会显示出转向后的地址;
后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,
并且,这样也有助于隐藏实际的链接。在有些情况下,
比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。


得到的测试结果如下:


所需处理的文件:E:/greptest.txt
行号-------------包含' 链接 '的行内容
6---------------后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
7---------------这样,从浏览器的地址栏中可以看到跳转后的链接地址。
9---------------并且,这样也有助于隐藏实际的链接。在有些情况下,


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Matlab模拟Linux命令grep 下一篇Android Makefile 分析之 (build/..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·HyperText Transfer (2025-12-26 07:20:48)
·半小时搞懂 HTTP、HT (2025-12-26 07:20:42)
·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)