⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileoperate.java

📁 本程序可从网上利用百度搜索引擎下载和输入关键词有关的网页
💻 JAVA
字号:
package spider;

import spider.Form;
import java.io.*;
import java.util.*;

public class FileOperate 
{
  private Form form;
  private String fileName;
  private String fileDir="d:\\xml\\test";//保存的地址;
  private File file;
  private Map map;
  private List list;
  FileOperate(Form form)
  {
	  this.form=form;
	  this.fileName=form.getUrl().replaceAll("\\W", "_");//把非词字符替换成_
	  this.fileName=this.fileName+form.getUrlID()+".xml";
	  switch(form.getType())
	  {
	     case 1: this.fileDir="D:\\xml\\lots_text"; break;
	     case 2: this.fileDir="D:\\xml\\one_text";break;
	     case 3: this.fileDir="D:\\xml\\radio"; break;
	     default: break;	  
	  }
  }
   public void createFlie()
   {  
	   if(fileDir!=null )
	   {
		   File dir=new File(fileDir);
		   if(dir.exists())
		   {
			   System.out.println("目录已存在");
		   }
		   else
		   {
			   dir.mkdirs();//创建目录
		   }
	   }
	   else
	   {
		   System.out.println("目录名为空");
	   }
	  if(fileName!=null)
		{
		  file=new File(fileDir,fileName);
		  if(file.exists())
		  {
			  file.delete();
		  }
		  
		  try
		  {
			  file.createNewFile();//创建文件
		  } 
		  catch (IOException e) 
		  {				
			e.printStackTrace();
		  }
		  
		}
	   else
	   {
		   System.out.println("文件名为空");
	   }		   	   
   }
   
   public void makeFile()//填充文件内容
   {
	   if(file.exists())
	   {
		   try 
		   {
			   FileWriter fw=new FileWriter(file,true);
			   //BufferedWriter bw=new BufferedWriter(fw);
			   StringBuffer sb=new StringBuffer();
			   sb.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
			   sb.append("\n");
			   sb.append("<form>\n");  
			        sb.append("<URL>  ");         sb.append(form.getUrl());        sb.append("  </URL>\n");
			        sb.append("<actionURL>  ");   sb.append(form.getAction());     sb.append("  </actionURL>\n");
			        sb.append("<method>  ");      sb.append(form.getMethod());     sb.append("  </method>\n");
			        sb.append("<type>  ");        sb.append(form.getType());         sb.append("  </type>\n");
			        
			        this.forInputHiddenList(sb);//调用填充Hidden隐藏框中的内容
			        
			        switch(form.getType())//分三类
			        {
			           case 1: forInputList(sb);break;		//调用函数填充	
			           case 2: forInputList(sb);break;
			           case 3: forRadioList(sb);forSelectList(sb);break;		       
			           default: sb.append("无此类型");
			        }
			                  
			        
			   sb.append("</form>\n");
			   if(sb.toString().indexOf("无此类型")!=-1)
			   {
				   System.out.println("无此类型");
			   }
			   else
			   {
				   fw.write(sb.toString());  
				   System.out.println("保存完毕,文件的目录是----"+fileDir);
				   System.out.println("文件的内容是----"+sb.toString());
			   }
			   fw.close();

			   
		   }
		   catch (IOException e)
		   {			
			e.printStackTrace();
			System.out.println("文件的内容出现异常");
		   }		  

	   }
	   else
	   {
		   System.out.println("文件不存在");
	   }
   }
   
   public void forInputList(StringBuffer sb)//调用填充text类型的内容	
   {
	   map=form.getInputsMap();
	   if(map!=null)
	   {
		   if(map.containsKey("inputsList"))
		     {
			   list=(List)map.get("inputsList");
		     }
		   else
		    {
			   System.out.println("Map中没有inputsListt");
		    }
		   Iterator it=list.iterator();   
		   while(it.hasNext())
		   {		   
			   String name=it.next().toString();
			   sb.append("<property>\n");
			   sb.append("<name>  ");       sb.append(name);     sb.append("  </name>\n"); 
		       sb.append("<ptype>  ");      sb.append("text");     sb.append("  </ptype>\n"); 
		       sb.append("</property>\n");
		   }
	   }	  
   }
   
   public void forInputHiddenList(StringBuffer sb)//调用填充text类型的内容	
   {
	   Map hiddensValueMap=null;
	   try
	   {
		   map=form.getHiddensMap();
		   if(map!=null)
		   {
			   if(map.containsKey("hiddensList") && map.containsKey("hiddensValueMap"))
			     {
				   System.out.println("Map中的隐藏框");
				   list=(List)map.get("hiddensList");
				   hiddensValueMap=(Map)map.get("hiddensValueMap");
				   
				   Iterator it=list.iterator();   
				   while(it.hasNext())
				   {					  
					   String hidden=it.next().toString();
					   sb.append("<property>\n");
					   sb.append("<name>  ");       sb.append(hidden);     sb.append("  </name>\n"); 
				       sb.append("<ptype>  ");      sb.append("hidden");     sb.append("  </ptype>\n"); 
				       sb.append("<values>  ");     
		                    sb.append("<value>  ");   sb.append(hiddensValueMap.get(hidden));  sb.append("  </value>\n");
	                   sb.append("  </values>\n");
				       sb.append("</property>\n");
				   }
			     }
			   else
			    {
				   System.out.println("Map中没有hiddensListt");
			    }	  
		   }
		   
	   }catch(Exception e)
	   {
		   e.printStackTrace();
		   System.out.println("Map中没有hiddensListt");
	   }
	  
   }
   
   
   public void forRadioList(StringBuffer sb)//填充radio标签中的各类型的内容
   {

      map=form.getRadiotMap();//所有的值都在Map中
	  if(map!=null)
		 {
		   if(map.containsKey("radioList"))
		     {
			   list=(List)map.get("radioList");
		     }
		   else
		    {
			   System.out.println("Map中没有radioList");
		    }	   
		   Iterator it=list.iterator(); 
		   String inputtextname=null;
		   String checked=null;
		   
		   if(map.containsKey("inputtextname"))//取出和radio标签搭配的文本框-----inputtextname
		     {
			   inputtextname=map.get("inputtextname").toString();
		     }
		   else
		    {
			   System.out.println("radioMap中没有inputtextname");
		    }
		   
		   if(map.containsKey("checked"))//取出radio标签中的默认选项
		     {
			   checked=map.get("checked").toString();
		     }
		   else
		    {
			   System.out.println("radioMap中没有checked");
		    }
		   
		   sb.append("<property>\n");
		   sb.append("<name>  ");       sb.append(inputtextname);     sb.append("  </name>\n");
	       sb.append("<ptype>  ");      sb.append("text");     sb.append("  </ptype>\n");             
	       sb.append("</property>\n");
	       
		   String propertyName="";//取出radio标签中的name
		   String value=null;
		   if(map.containsKey("propertyName"))
		       {
			   propertyName=map.get("propertyName").toString();	 
		       }
		      else
		      {
			   System.out.println("radioMap中没有propertyName");
		      }
		   
	       sb.append("<property>\n");
	       sb.append("<name>  ");       sb.append(propertyName);     sb.append("  </name>\n");
	       sb.append("<ptype>  ");      sb.append("radio");     sb.append("  </ptype>\n");
		    
	       while(it.hasNext())
		   {	
			   value=it.next().toString();       
		       sb.append("<values>  ");     
		                sb.append("<value>  ");   sb.append(value);  sb.append("  </value>\n");
	           sb.append("  </values>\n");
		   }

	       sb.append("<checked>  ");      sb.append(checked);     sb.append("  </checked>\n"); 
	       sb.append("</property>\n");
	   }

   }
   
   public void forSelectList(StringBuffer sb)//填充select标签中各类型的内容
   {

	    map=form.getSelectMap();//所有的值都在Map中
		if(map!=null)
		 {
		   if(map.containsKey("optionList"))
		     {
			      list=(List)map.get("optionList");
		     }
		     else
		     {
			   System.out.println("Map中没有optionList");
		     }
		   Iterator it=list.iterator();   
		   String inputtextname=null;
		   String checked="";
		    
			   if(map.containsKey("inputtextname"))//取出和radio标签搭配的文本框-----inputtextname
			     {
				   inputtextname=map.get("inputtextname").toString();
			     }
			   else
			    {
				   System.out.println("selectMap中没有inputtextname");
			    }
			   if(map.containsKey("checked"))//取出radio标签中的默认选项
			     {
				   checked=map.get("checked").toString();
			     }
			   else
			    {
				   System.out.println("selectMap中没有checked");
			    }
			   
		   sb.append("<property>\n");
		   sb.append("<name>  ");       sb.append(inputtextname);     sb.append("  </name>\n"); 
		   sb.append("<ptype>  ");      sb.append("text");     sb.append("  </ptype>\n");            
	       sb.append("</property>\n");
	       
		   String value=null;
		   String propertyName=null;
		   if(map.containsKey("propertyName"))//取出select标签中的name
		     {
			   propertyName=map.get("propertyName").toString();
		     }
		   else
		    {
			   System.out.println("selectMap中没有propertyName");
		    }
		   
	       sb.append("<property>\n");
	       sb.append("<name>  ");       sb.append(propertyName);     sb.append("  </name>\n");
	       sb.append("<ptype>  ");      sb.append("radio");     sb.append("  </ptype>\n");   
	      
		   while(it.hasNext())
		   {			   
			   value=it.next().toString();
		       sb.append("<values>  ");   
		             sb.append("<value>  ");   sb.append(value);  sb.append("  </value>\n");
		       sb.append("  </values>\n");
		   }
		   
	       sb.append("<checked>  ");      sb.append(checked);     sb.append("  </checked>\n"); 
	       sb.append("</property>\n");
	   }	   
   }
   
public Form getForm()
{
	return form;
}
public void setForm(Form form)
{
	this.form = form;
}
public String getFileName() 
{
	return fileName;
}
public void setFileName(String fileName)
{
	this.fileName = fileName;
}
public String getFileDir() 
{
	return fileDir;
}
public void setFileDir(String fileDir) 
{
	this.fileDir = fileDir;
}
public File getFile() 
{
	return file;
}
public void setFile(File file) 
{
	this.file = file;
}
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -