Java实现Grep

1.[代码]grep.java

import java.io.*;

public class grep{

public static void main(String [] args) throws IOException{

if(args.length<1){

System.out.println("zu wenige Parameter");

throw new IllegalArgumentException("zu wenig Parameter!");

}

boolean reversed =false;

String pattern;

String sfile ="";

try{

if(args[0].equals("-v")){

reversed = true;

pattern =args[1];

if(args.length>2){

sfile = args[2];

}

}else{

pattern = args[0];

if(args.length==2){

sfile = args[1];

}

}

}catch(IndexOutOfBoundsException ex){

System.out.println("Irgendwas ist beim verarbeiten der Parameter schiefgegangen: " + ex);

return;

}

if (!(sfile.equals(""))){

File myfile;

try{

myfile = new File(sfile);

}catch(NullPointerException ex){

System.out.println("uhhps das sollte nicht passieren: " + ex);

return;

}

BufferedReader myreader;

try{

myreader = new BufferedReader(new FileReader(myfile));

}catch(FileNotFoundException ex){

System.out.println("File Not Found: " + ex);

return;

}

search(myreader, reversed, pattern);

}else{

BufferedReader myreader = new BufferedReader(new InputStreamReader(System.in));

try{

search(myreader, reversed, pattern);

}catch(IOException ex){

System.out.println("IO Fehler: " +ex);

}

}

}

private static void search(BufferedReader myreader, boolean reversed, String pattern) throws IOException{

//System.out.println("Suche nach: " + pattern);

while(myreader.ready()){

String sline = myreader.readLine();

if (reversed){

if(!sline.contains(pattern)){

System.out.println(sline);

}

}else{

if (sline.contains(pattern)){

System.out.println(sline);

}

}

}

}

}

grep的java源程序_Java实现Grep相关推荐

  1. 创建java源程序_java – 如何从源代码构建Mojarra

    自2017年1月16日起,您可以使用以下步骤构建Mojarra: 注意:构建Mojarra需要在系统上安装ant和maven.它还要求您使用正确的JDK版本: >对于Mojarra 2.3.x, ...

  2. ps -ef grep java解释,ps -ef | grep java(示例代码)

    ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 grep命令是查找,是一种强大的文本搜索工具, ...

  3. 描述java源程序构成_Java第二章Java程序设计

    <Java第二章Java程序设计>由会员分享,可在线阅读,更多相关<Java第二章Java程序设计(140页珍藏版)>请在人人文库网上搜索. 1.第2章 Java基本语法,2. ...

  4. java源程序可以有几个主类_Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。_学小易找答案...

    [填空题]分析以下程序的执行结果 #include using namespace std; class Sample { int x; int y; public: Sample(int a,int ...

  5. java源程序中区分大小写_Java程序中不区分大小写字母。( )_学小易找答案

    [单选题]下列选项中,不属于Java语言特点的一项是( ) [单选题]丝绸时髦了,人造纤维过时了. [单选题]<葛生>出自<诗经>的: [多选题]keyshot渲染的光源是利用 ...

  6. java源程序编译型_Java语言的源程序不是编译型的,而是编译解释型的。( )_学小易找答案...

    [单选题]下列选项中,不属于Java语言特点的一项是( ). [单选题]贺铸<半死桐>(重过阊门万事非)悼念其妻病逝于: [判断题]Java语言具有较好的安全性和可移植性及与平台无关等特性 ...

  7. java源程序分为两大类_java源程序分为两大类

    答案:D 您的答案:D 题目分数:2.0 此题得分:2.0 13.第 19 题 Java Application 源程序的主类是指包含有( )方法的类 A.main 方法 B.toString 方法 ...

  8. java程序_Java程序员必备----Java命令大全

    1.java.exe: ====================== 运行java程序,这个相信每一位用Java的人知道了.2.javac.exe: ====================== 编译 ...

  9. java堆栈_java线程的堆栈跟踪之jstack篇

    该命令打印java线程的堆栈跟踪,可以得知哪些线程被阻塞或正等待,以便于查找如线程死锁的原因 用法: jstack [ option ] pid jstack [ option ] executabl ...

最新文章

  1. mysql数据库基本操作练习
  2. 基础的互联网连接词汇—Vecloud微云
  3. ABP Framework 5.0 RC.1 新特性和变更说明
  4. MySQL索引类型总结和使用技巧以及注意事项
  5. php的process_field,使用Boost :: Process运行php命令
  6. Python 画数学函数图像 matplotlib.pyplot
  7. Android Studio Prettify 插件
  8. 应用java编写 按键小脚本_一个使用JAVA编写的类似按键精灵的程序,支持脚本文件编写(含源代码) | 学步园...
  9. NumberFormat
  10. 【黑苹果】宏基Acer Predator Helios 300+ i7-7700HQ+Opencore +MacOS10.14.6 efi文件下载!
  11. wow 卡正在连接服务器,魔兽世界怀旧服卡蓝条服务器无法连接解决办法
  12. openstack删除僵尸卷
  13. 会议记录管理系统(6) - 查找会议记录模块设计
  14. android svg路径动画,五、Android SVG动画
  15. 万亿蚂蚁的高光与隐忧
  16. Spring Cloud入门-Admin服务监控中心(Hoxton版本),java高级编程技术
  17. Arduino与无源蜂鸣器
  18. 51xunji双PWM 002 蓝牙 L9110电机驱动
  19. 一位平安集团16年老员工:怕你胸有鸿鹄之志,手无缚鸡之力
  20. 高分区Localdimming方案研讨

热门文章

  1. codelite14中文语言包_CodeLite(C++跨平台开发环境) V 11.0.1 中文版
  2. RabbitMq org.springframework.amqp.AmqpIOException: java.io.IOException
  3. 游戏里的角色都什么格式图片_二十年前是怎样开发游戏的?
  4. jarjar.jar解决jar包版本兼容问题
  5. SpirngBoot整合MyBatis出现“SAXParseException”和“文件提前结束”异常解决办法
  6. JavaScript学习笔记07【6个经典案例——电灯开关、轮播图、自动跳转首页、动态表格、表格全选、表单验证】
  7. 软件工程概论 课堂练习 第2次作业1【思考:POS系统的对象关联】
  8. Matlab图像处理创新实践-实验2【图像滤波基础(2)】
  9. Android复习03(Get请求访问网络[详解]、获取文章列表)
  10. CentOS 初体验二十三:redis常用命令:List