日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

生成任意内容任意类型的文件

發(fā)布時(shí)間:2024/10/12 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 生成任意内容任意类型的文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

任何類型都可以,內(nèi)容也是,excel雖然也可以生成,但它會把所有內(nèi)容都放到第一個(gè),所以還是老實(shí)用一般方法吧。

?

這個(gè)有點(diǎn)麻煩,我們一步步來(可以先拉到最后看一眼配置文件會比較好理解)

第一個(gè)類:調(diào)用方法

public void test(){//參數(shù)一是需要放進(jìn)去的內(nèi)容,具體肯定不會這么短(根據(jù)模板多個(gè)的情況下改用list)//參數(shù)二是讀取配置文件的路徑insertContent("111", "D:/dev/workspace/lzpt/resource/"); }

?

第二個(gè)類:基礎(chǔ)方法類

import java.sql.SQLException; import java.util.HashMap; import java.util.Map;import com.flatform.cfg.domain.BasicCfgMessage;public class CodeGenerator {public static String flag = "0";private String classPackage;private String codePath;private String sourcePath;private BasicCfgMessage message;//各種路徑public void config(String classPackage, String codePath) {this.classPackage = classPackage;this.codePath = codePath;//這里影響生成的文件被放在哪里this.sourcePath = (codePath + "/content/");}//上面調(diào)用的就是這個(gè)方法public static void insertContent(String content, String path) throws SQLException {CodeGenerator dg = new CodeGenerator();//你的路徑配置文件的路徑(如果放在resource(根目錄)下面的話,直接寫名字)String propertFilePath = "template.config.properties";String classPackage = StringUtil.getPropertyFromFile(path, propertFilePath, "classPackage");String codePath = StringUtil.getPropertyFromFile(path, propertFilePath, "codePath");dg.config(classPackage, codePath);return dg.generator(content, path);}public void generator(String content, String path) {Map<String, Object> map = new HashMap<String, Object>();// 實(shí)例化一個(gè)map//根據(jù)配置文件的參數(shù)可能有多個(gè),這里只有一個(gè)content,因?yàn)橹慌淞薱ontentmap.put("content", content);//取名字,隨便取吧String name = UUIDUtils.create();try {//第一個(gè)參數(shù)是內(nèi)容配置文件,可以配置多個(gè),多個(gè)的話,這段代碼復(fù)制粘貼幾遍就行了//第四個(gè)參數(shù)(就是那個(gè)有.exe的,是文件類型,什么后綴出來的就是什么類型的文件。exe當(dāng)然也可以生成,雖然根據(jù)內(nèi)容可能無法運(yùn)行(還是txt,doc這種觀賞類的比較適用)……)VelocityInfoOp.generatorCode("template.vm", map, this.sourcePath, name + ".exe", path);//沒什么意義,看一眼信息用的System.out.println("***************代碼生成完成******************");System.out.println("代碼路徑:" + this.codePath);System.out.println("包:" + this.classPackage);System.out.println("********************************************");} catch (Exception e) {throw new RuntimeException();}}public String getClassPackage() {return this.classPackage;}public void setClassPackage(String classPackage) {this.classPackage = classPackage;}public String getPath() {return this.sourcePath;}public void setPath(String path) {this.sourcePath = path;} }

?

下一個(gè)類:配路徑用的

public static synchronized String getPropertyFromFile(String path, String filename, String key) {// getProperty獲取指定鍵指示的系統(tǒng)屬性//獲取路徑配置文件時(shí)的路徑,具體情況具體分析String paodingAnalysisPath = path + filename;// 定義一個(gè)輸入流InputStream in1 = null;// 定義一個(gè)類,資源包包含特定于語言環(huán)境的對象(需要特定語言環(huán)境的的資源時(shí),加載資源包內(nèi)的信息)ResourceBundle rb = null;try {in1 = new BufferedInputStream(new FileInputStream(paodingAnalysisPath));rb = new PropertyResourceBundle(in1);} catch (Exception e) {e.printStackTrace();}return rb.getString(key).trim();// 去掉空格,返回內(nèi)容 }

?

最后一個(gè)類:

import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.StringWriter; import java.util.Iterator; import java.util.Map;import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.VelocityEngine;public class VelocityInfoOp {public static void generatorCode(String templateFile, Map<String,Object> contextMap, String path, String fileName,String vmpath){VelocityContext context = new VelocityContext();VelocityEngine ve = new VelocityEngine(); //獲取內(nèi)容配置文件的路徑,同樣具體情況具體分析String vPath = vmpath +"template";System.out.println(vPath);ve.setProperty("file.resource.loader.path", vPath);ve.setProperty("input.encoding", "UTF-8");ve.setProperty("output.encoding", "UTF-8");ve.init();for (Iterator<String> i$ = contextMap.keySet().iterator(); i$.hasNext();) {
   String key = i$.next();context.put(key, contextMap.get(key));}Template template = null;try{template = ve.getTemplate(templateFile);}catch (Exception e){e.printStackTrace();}StringWriter sw = new StringWriter();if (template != null) {template.merge(context, sw);}File pathTemp = new File(path);if (!pathTemp.exists()){pathTemp.mkdirs();}writeFile(pathTemp + "/" + fileName, sw.toString());}public static void writeFile(String filePathAndName, String fileContent){try{File f = new File(filePathAndName);if (!f.exists()) {f.createNewFile();}OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");BufferedWriter writer = new BufferedWriter(write);writer.write(fileContent);writer.close();} catch (Exception e) {System.out.println("寫文件內(nèi)容操作出錯(cuò)");e.printStackTrace();}} }

?

最后放一下配置文件里面的內(nèi)容

template.config.properties里面:

author=SOMEONE
classPackage=com.test
codePath=/dev/workspace/test/src

就是些路徑,方便改,你也可以直接寫在類里面

?

template.vm里面:

${content}

這里說明一下

如果配的是:

內(nèi)容為:${content}

前面map里面,content的內(nèi)容為111

文件內(nèi)容最終會是“內(nèi)容為:111”

參數(shù)可以是多個(gè),幾個(gè)參數(shù)map就放幾個(gè)值,鍵名與參數(shù)名一致就行

?

以上。

轉(zhuǎn)載于:https://www.cnblogs.com/IceBlueBrother/p/8423105.html

總結(jié)

以上是生活随笔為你收集整理的生成任意内容任意类型的文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣欧美 | 99视频99 | 自拍偷拍欧美日韩 | 久操中文 | 森泽佳奈作品在线观看 | www久久久天天com | 欧美色性视频 | 影音先锋中文字幕人妻 | 欧美天堂在线观看 | 五月天综合 | 青青草av| 亚洲欧美日韩精品在线观看 | 日韩国产欧美在线视频 | 亚洲精品一区二区三区四区 | 91日本在线观看 | 成人在线综合网 | 娇小萝被两个黑人用半米长 | 男男啪啪网站 | 大桥未久恸哭の女教师 | 欧美精品一级片 | 日本一区二区精品视频 | 精品人妻无码一区二区三区 | 国产成人在线网站 | 91香蕉视频黄 | 日韩av一区二区三区 | 久久国产小视频 | 丁香六月久久 | 欧美大色一区 | 国产伦精品一区二区三区视频网站 | 97超碰中文 | 亚洲男女视频在线观看 | 精品人妻无码一区二区三 | 爱爱的免费视频 | 日韩精品资源 | 91porn九色 | 久久久久久夜 | 2018中文字幕在线观看 | 黄色在线观看av | 素人女裸体 | 亚洲一区二区精品在线观看 | 91在线导航 | 成人人人人人欧美片做爰 | 尤物视频免费在线观看 | 天堂色综合 | 国产chinasex麻豆videos | 正在播放老肥熟妇露脸 | 久久一级电影 | 四虎三级 | 亚洲一区二区精品视频 | 天天干夜夜看 | 黑丝一区 | 亚洲热久久 | 邻居少妇张开腿让我爽了在线观看 | 久久高清 | 顶级嫩模啪啪呻吟不断好爽 | 狠狠干2017 | jzzjzz日本丰满少妇 | 亚洲一区欧洲二区 | 日本一区二区三区免费在线观看 | 亚洲www啪成人一区二区麻豆 | 91亚洲精品在线 | 可以免费看的黄色 | 亚洲尤物在线 | aaaa免费视频| 清纯唯美亚洲综合 | xxxxx日韩| 夜夜爽天天操 | 中国少妇初尝黑人巨大 | 长篇h版少妇沉沦交换 | 亚洲精品合集 | www.av色 | 欧美一区成人 | 黄色欧美视频 | 亚洲欧美大片 | 精品少妇无码av无码专区 | 体感预报日剧 | 免费看成人aa片无码视频羞羞网 | 久久美| 国内爆初菊对白视频 | 看片免费黄在线观看入口 | 免费观看国产精品视频 | 高h喷水荡肉少妇爽多p视频 | 久久国产中文 | 日韩射吧| 亚洲美女激情视频 | 欧美午夜精品一区二区 | 欧美 亚洲 视频 | 亚洲天天操 | 神马午夜视频 | 最新中文字幕 | 在线观看超碰 | 国产一级理论 | 毛片网站免费 | 一区二区三区四区免费 | 黄色在线观看av | 国产美女特级嫩嫩嫩bbb | 精品一二三区 | 婷婷六月天在线 | 国产欧美精品一区二区在线播放 |