java项目打包后如何读写项目中的文件
来源:互联网 发布:mysql 时间相减 编辑:程序博客网 时间:2024/05/10 22:27
写了一个项目,其中放了一些配置文件,因为项目需求,要读写这些文件。在eclipse中可以正常读写操作,但是打包之后发现不能执行写操作,但是可以读取。上百度查询,都是如何读取项目中的文件,但是没有涉及到写操作,后来查到百度上有人说:
如果非要往jar里面写文本,还要重新导入被编写的jar才可以读到你修改之后的内容,很麻烦。链接:http://zhidao.baidu.com/link?url=kgNpRcBzkHhd4O5NuvQfC_sEOx8b_EzDCDvaXc_eZLdA144A55qIadf0KCEwNf2mPPNwI6KK_I7MIjvDgIp_xa既然这样,只能转变方向,将这些文件都放入一个文件夹projectFile中,该文件夹与jar包同在一个目录下,为打包之前这个文件夹和工程文件同目录。项目结构截图:打包之前projectFile文件夹与工程文件的位置截图:打包之后的jar包与projectFile文件夹的位置截图:源码:package com.freemaker;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStreamWriter;import java.io.StringReader;import java.net.URL;import java.util.HashMap;import java.util.Locale;import java.util.Map;import javax.swing.JOptionPane;import sun.misc.*;import freemarker.cache.URLTemplateLoader;import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;public class FreemakerDemo1 {private static Configuration cfg; //模版配置对象private static File file=null;public static void init() throws Exception {//初始化FreeMarker配置//创建一个Configuration实例cfg = new Configuration();String userDir=System.getProperty("user.dir");String p="";file=new File(userDir+"/projectFile");if(!file.exists()){file=new File(userDir);p=file.getParent();file=new File(p+"/projectFile");//}//设置FreeMarker的模版文件夹位置// cfg.setDirectoryForTemplateLoading(new File("G:\\testprojects\\freemarkertest\\src"));// cfg.setDirectoryForTemplateLoading(file);//可以cfg.setTemplateLoader(new URLTemplateLoader() {// 获得模板的url@Overrideprotected URL getURL(String filePath) {return FreemakerDemo1.class.getResource("/resource/部门申请审批表20151226.xml");}});cfg.setEncoding(Locale.getDefault(), "utf-8");JOptionPane.showMessageDialog(null, "模板位置设置成功!");}public static void main(String[] args) throws Exception {// String userDir=System.getProperty("user.dir");// String p="";// file=new File(userDir+"/projectFile");//a.txt,// if(!file.exists()){// file=new File(userDir);// p=file.getParent();// file=new File(p+"/projectFile");///保密要害部门部位报废申请审批表20151226.xml//// }init();createStringModel();JOptionPane.showMessageDialog(null, "String模板成功演示");processFile();}//1、通过String来创建模版对象,并执行插值处理public static void createStringModel() throws IOException, TemplateException {//创建一个模版对象Template t = new Template(null, new StringReader("用户名:${user};URL: ${url};姓名: ${name}"), null);//创建插值的MapMap map = new HashMap();map.put("user", "lavasoft");map.put("url", "http://www.baidu.com/");map.put("name", "百度");//执行插值,并输出到指定的输出流中t.process(map, new OutputStreamWriter(System.out));}//2、通过文件来创建模版对象,并执行插值操作public static void processFile() throws Exception {//构造填充数据的MapMap map = new HashMap();JOptionPane.showMessageDialog(null, "freemaker执行开始");File f=new File(file.getPath()+"/2016012500001"+".doc");OutputStreamWriter out=new OutputStreamWriter(new FileOutputStream(f),"utf-8");map.put("image", getImageStr());map.put("formno", "20160125001");map.put("deptname", "事业部");map.put("date", "2016-01-25");map.put("name", "张三丰");map.put("idCard", "0574201601251203");map.put("type", "管理");map.put("deptStaff", "经理");map.put("usernum", "201601252596");map.put("securitymeasure", "做好安全措施");map.put("reason", "工作调整");//创建模版对象Template t = cfg.getTemplate("resource/部门申请审批表20151226.xml");//在模版上执行插值操作,并输出到制定的输出流中t.process(map, out);JOptionPane.showMessageDialog(null, "freemaker执行成功");out.flush();out.close();}public static String getImageStr() {String imgFile = file.getPath()+"/barcode.png";InputStream in = null;byte[] data = null;try {in = new FileInputStream(imgFile);data = new byte[in.available()];in.read(data);} catch (IOException e) {e.printStackTrace();}finally {try {if(in!=null){in.close();}} catch (Exception e2) {}}BASE64Encoder encoder = new BASE64Encoder();return encoder.encode(data);}} 其中使用到了freemarker.jar包。打包之后执行jar程序,projectFile文件可以正常生成word文件,图片也可以正常写入。projectFile文件截图:
0 0
- java项目打包后如何读写项目中的文件
- 资源打包后项目中的文件
- 如何将Java项目打包成批处理文件
- vue完成项目后,如何打包成静态文件
- vue完成项目后,如何打包成静态文件
- 如何打包一个项目文件
- 如何打包java project项目
- 如何打包java project项目
- 如何编写bat文件并打包java项目
- 如何将Java项目代码打包成exe文件
- java如何找到项目中的资源文件
- 怎样找到项目打包后的文件
- vue完成项目后,如何打包成静态文件,并且用Node调试
- 如何把java项目(java文件)打包成.jar文件,双击即可运行.
- Java项目打包成Jar文件后图片不显示的问题解决
- Java项目打包成Jar文件后图片不显示的问题解决
- java项目打包成为exe执行文件
- java项目打包成为exe执行文件
- ARM64多核CPU启动流程
- 失败的面试经历
- 新系统iOS 8下推送注册-registerForRemoteNotifications
- Express中使用Jade
- textfield输入文本长度限制(超出后不能输入)
- java项目打包后如何读写项目中的文件
- 纯真IP数据库格式详解
- 怎样将Oracle11g导出的dmp文件怎样导入到Oracle10g中?
- DNS对域名的解析过程
- 【SDOI2015】【BZOJ3991】寻宝游戏
- @link的使用实例
- 图像处理(二十一)基于数据驱动的人脸卡通动画生成-Siggraph Asia 2014
- 将数字转换成对应的中文 将阿拉伯数字翻译成中文的大写数字
- android camera2启动流程