一个很简单的功能,用来自动生成bean代码
CreateBean.java
代码:
package com.auto.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
public class CreateBean {
public CreateBean() {
}
public ArrayList<String> readFile(String filename) {
ArrayList<String> line = new ArrayList<String>();
try {
File f = new File(filename);
RandomAccessFile rf = new RandomAccessFile(f, "r");
String temp;
while (rf.read() != -1) {
rf.seek(rf.getFilePointer() - 1);
temp = new String(rf.readLine().getBytes("8859_1"));
if(temp.trim().length()>1){
line.add(temp);
}
}
rf.close();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return line;
}
public void createBean(String filename, ArrayList<String> elements) {
String reqfilename="Req_"+ filename+".java";
String path = System.getProperty("user.dir")
+ "\\src\\com\\business\\reqbean\\";
File f = new File(path +reqfilename);
try {
f.createNewFile();
StringBuffer beancode = new StringBuffer();
beancode.append("package com.business.reqbean;");
beancode.append("\r\n");
beancode.append("/**CreateBean自动生成代码*/");
beancode.append("\r\n");
beancode.append("public class Req_"+filename+" {");
beancode.append("\r\n ");
for (String ts : elements) {
String[] ns = ts.split(" ");
beancode.append("/**"+ns[2]+"*/");
beancode.append("\r\n ");
if(ns.length>4){
beancode.append("/**"+ns[4]+"*/");
beancode.append("\r\n ");
}
beancode.append("private "+ns[1]+" "+ns[0]+";");
beancode.append("\r\n ");
beancode.append("public "+ns[1]+" get"+chargeMethod(ns[0])+"(){");
beancode.append("\r\n ");
beancode.append("return "+ns[0]+";");
beancode.append("\r\n ");
beancode.append("}");
beancode.append("\r\n ");
beancode.append("public void"+" set"+chargeMethod(ns[0])+"("+ns[1]+" "+ns[0]+"){");
beancode.append("\r\n ");
beancode.append("this."+ns[0]+" = "+ns[0]+";");
beancode.append("\r\n ");
beancode.append("}");
beancode.append("\r\n ");
}
beancode.append("\r\n");
beancode.append("}");
RandomAccessFile rf = new RandomAccessFile(f, "rw");
rf.write(beancode.toString().getBytes("UTF-8"));
rf.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private String chargeMethod(String f){
return f.substring(0, 1).toUpperCase()+f.substring(1);
}
public static void main(String args[]) {
CreateBean cb = new CreateBean();
ArrayList<String> elements = cb.readFile(System.getProperty("user.dir")
+ "\\beanDepict\\interfacename");
cb.createBean("interfacename", elements);
}
}
使用的时候准备一个文本文件 interfacename
内容如下
phoneNum java.lang.String手机号码 必须目前支持移动和联通
放在beanDepict目录下
运行后生成bean Req_interfacename.java
package com.business.reqbean;
/**CreateBean自动生成代码*/
public class Req_interfacename {
/**手机号码*/
/**目前支持移动和联通*/
private java.lang.String phoneNum;
public java.lang.String getPhoneNum(){
return phoneNum;
}
public void setPhoneNum(java.lang.String phoneNum){
this.phoneNum = phoneNum;
}
}