📄 fileoperate.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 + -