我想搜索一个网页,并找出其中具有一定特点的字符串,我应该如何实现,
我原来想将网页内容放在一个byte[]中,再将这个数组构造成一个字符串,再对这个字符串搜索.但发现网页大了,这个byte[]数组放不下所有网页的内容,我应该怎么来实现这个网页内容的搜索呀.
import java.net.*;
import java.io.*;
class WebSearch
{
public static void main(String[] args)
{
if (args.length!=0)
{
WebPage wp = new WebPage(args[0]);
wp.getWebPage();
}
else
{
System.out.println("错误的命令格式!");
System.out.println("java WebSearch URL字符串");
}
}
}
class WebPage
{
private String strUrl;
WebPage(String strUrl)
{
this.strUrl = strUrl;
}
public void getWebPage()
{
try
{
URL url = new URL(strUrl);
System.out.println("正在下载"+url.getFile()+"...");
BufferedInputStream bis = new BufferedInputStream(url.openStream());
byte[] buf = new byte[10000000];
int idata;
long llen;
while((idata=bis.read())!=-1)
{
buf[llen] = idata;
llen++;
}
String strContent = new String(buf,0,llen);
System.out.println(strContent);

/*FileOutputStream fos = new FileOutputStream("1.html");
BufferedOutputStream bos = new BufferedOutputStream(fos);
int data;
while((data=bis.read())!=-1)
{
bos.write(data);
}
bos.close();*/
bis.close();


}
catch(MalformedURLException e)
{
System.out.println("URL格式不对!");
}
catch(IOException e)
{
System.out.println("文件保存出错!");
}
}

}

解决方案 »

  1.   

    使用Lucene作全文检索,准确速度又快,并且使用起来也很简单。
      

  2.   

    另外,如果使用lucene的话,可以给出一个示例代码吗?
      

  3.   

    lucene的Sample自带的有,很易懂。
    使用基础类实现起来比较麻烦,应该会涉及到以下问题:
    1、文件内容的存储?
    2、搜索关键字的存储?
    3、如何进行比较?
    4、是否考虑换行?是否考虑不同系统下的换行?
    5、是否需要完全匹配?
    6、是否考虑剔除网页中的tag?
    这些问题考虑清楚了,再考虑实现的问题。思考中……