完成基于管道过滤器风格的kwic实现

完成基于管道过滤器风格的kwic实现

ID:22650067

大小:121.00 KB

页数:8页

时间:2018-10-30

完成基于管道过滤器风格的kwic实现_第1页
完成基于管道过滤器风格的kwic实现_第2页
完成基于管道过滤器风格的kwic实现_第3页
完成基于管道过滤器风格的kwic实现_第4页
完成基于管道过滤器风格的kwic实现_第5页
资源描述:

《完成基于管道过滤器风格的kwic实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验2:软件体系结构风格实现一、实验目的1)初步了解不同的体系结构风格2)掌握不同体系结构风格的实现二、实验学时4学时。三、实验方法根据KWIC的描述,用所熟悉的语言,完成实验内容。四、实验环境Windows7旗舰版jdkl.6Eelipse3.7.0五、实验内容2)完成基于管道过滤器风格的KWIC实现六、实验操作步骤1.KWIC描述:KWIC索引系统接受一些行,每行有若干字,每个字由若干字符组成;每行都可以循环移位。重复地把第一个字删除,然后接到行末;KWIC把所有行的各种移位情况按照字母表顺序输出。完成基于管道过滤器风格的KW1C实现Main类p

2、ackagekwicpipe;importjava.io.File;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Fileinfile=newFile("e:\mykwic_in.txt");Fileoutfile=newFile(z,e:\mykwicout.txt");Scannerinputfilc;Scanneroutputfile;trv{inputflie=newScanner(infile);outputfile=newScann

3、er(outfile)://定义三个管道Pipepipel=newPipeO;Pipepipe2=newPipeO;Pipepipe3=newPipeO;//定义四种过滤器Inputinput=newInput(infilc,pipel);Shiftshift=newShift(pipel,pipe2);Outputoutput=newOutput(pipe3,outfile);//启动四种过滤器的线程input,transform()shift,transform0;output,transform();//直接输出结果System,out.pri

4、ntIn(,zinflie’0;Stringstr=null;while(inputfile.hasNcxtLincO){str=inputfile.nextLineO:System,out.printIn(str);}System,out.prindn(〃inputend〃);Thread.sleep(3000);System,out.printlnCoutfile");while(outputfile.hasNextLine()){System,out.printIn(str);}inputfile.close0;outputfile.close

5、():}catch(Exceptione){e.getMessage();}}}Filter类packagekwic_pipe;importjava.io.TOException;publicabstractclassFilter{//定义输入管道protectedPipeinput;//定义输岀管道protectedPipeoutput:privatebooleanisStart=false;Filter(Pipeinput,Pipeoutput){this,input=input:this.output=output;}//防止多次调用,调用之后

6、线程开始执行publicvoidstart(){if(!isStart){isStart=true;Threadthread=newThread();thread,start();}}//线程的run方法publicvoidrun(){try{this,transform();)catch(IOExccptionc){e.getMessageO:}}//将输入数据转换为所需数据并写入输出管道//由子类实现抽象方法protectedabstractvoidtransform()throwslOException;}Pipe类packagekwic_pi

7、pe;importjava.io.TOException;importjava.io.PipedReader;importjava.io.PipcdWritcr;importjava.io.PrintWriter;importjava.util.Scanner;publicclassPipe{//输入管道privateScannerpipereader;//输出管道privatePrintWriterpipewriter;publicPipeO{PipedWriterpw=newPipedWriter():PipedRcadorpr=newPipod

8、Roador():try{pw.connect(pr);}catch(TOExceptione){e.get

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。