本实例利用 String.format 的方法 实现 变量替换
String str=null; str=String.format("Hi, %s", "林计钦"); // 格式化字符串 System.out.println(str); // 输出字符串变量str的内容
或者使用MessageFormat也可以
private String createMainBodyForBM(String modelName, String modelUrl) {
String mainText = "<html><head><meta charset=\"utf-8\"></head><body><h2>有人上传了模型,需要转换,模型名称:{0}"
+ "</h2><br>在文件服务器上真实路径:{1}</body></html>";
return MessageFormat.format(mainText, modelName, modelUrl);
}
包含读取样例接口(或其实现类),替换里面 %s 修改为需要的内容 然后写入相应目录对应的文件
interface 目录放置 程序生成的接口 impl文件夹 录放置 程序生成的接口impl文件
程序目录 本实例实现service 部分的一个简单示例 参考此方法可以实现dao
样例接口 PermissionService
package com.bimatrix.revit.nservice
public interface %s {
}
样例接口实现类
PermissionServiceImpl
package com.bimatrix.revit.nservice.impl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.bimatrix.revit.nservice.%s;
@Transactional
@Service
public class %sImpl implements %s{
}
主程序 ServuceJiaoShouJia
package test.JiaoShouJia;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*
* author : flyer
* 2016.8.26
*/
public class ServuceJiaoShouJia {
//产生接口文件
String createInterfaceFileByName(String interfaceName) {
// File f = new File(this.getClass().getResource("/").getPath());
// System.out.println(f);
// 获得当前文件ServuceJiaoShouJia.java的具体路径
String fileContent = getJavaFile2String("PermissionService.java");
//获得 传入文件的参数
fileContent=String.format(fileContent, interfaceName);
//产生一个文件 url 待生成的文件名字
String url = getNowFileUrl()+"\\interface\\"+interfaceName+".java";
createFile(fileContent ,url );
return fileContent;
}
//产生接口实现文件
String createServiceImplFileByName(String implFileName) {
// 获得当前文件ServuceJiaoShouJia.java的具体路径
String fileContent = getJavaFile2String("PermissionServiceImpl.java");
//获得 传入文件的参数
fileContent=String.format(fileContent, implFileName , implFileName ,implFileName);
//产生一个文件 url 待生成的文件名字
String url = getNowFileUrl()+"\\impl\\"+implFileName+"Impl.java";
createFile(fileContent ,url );
return fileContent;
}
/*
* content 文件内容
* fileUrl 创建的文件路径
*/
void createFile(String content ,String fileUrl){
try {
FileOutputStream fos = new FileOutputStream(fileUrl);
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
osw.write(content);
osw.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
//获得当前路径下java 文件内容 PermissionService.java
private String getJavaFile2String(String fileName) {
String result = "";
try {
String url = getNowFileUrl();
url = url + "\\"+fileName ;
File file = new File(url);
System.out.println(file);
String encoding = "UTF-8";
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
result += lineTxt +"\r\n";
}
read.close();
} else {
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}
return result ;
}
//获得当前java文件 实际路径
private String getNowFileUrl() {
String nowfileUrl = this.getClass().getResource("").getPath();
nowfileUrl = nowfileUrl.replaceFirst("bin", "src");//bin 换到src路径 java文件下面
return nowfileUrl ;
}
public static void main(String[] args) {
// System.out.printf("100的一半是:%s 结果 %s", "参数1","参数2");
ServuceJiaoShouJia t = new ServuceJiaoShouJia();
//单个创建
// t.createInterfaceFileByName("CompanyService");
// t.createServiceImplFileByName("CompanyService");
//实现多个 数组是一些实体类名字
String[] serviceNames={"Company","Element","ElementProperty",
"HistoryRecord","Model","Project","Record","RecordSet","SwitchRecord","System"} ;
for(String name :serviceNames){
t.createInterfaceFileByName(name+"Service");
t.createServiceImplFileByName(name+"Service");
}
}
}
只是个简单的实现,比较实用 可以减少很多的工作量