在我们的D盘下有这样一个html模板,现在我们要做的就是解析news.template文件,从数据库中提取数据将数据添加到指定的模板位置上

 <head>
<title>{title}</title>
</head>
<body>
<table align="center" width="" border="">
<tr>
<td width="10%"><b>标签:</b></td>
<td>{title}</td>
</tr>
<tr>
<td width="10%"><b>作者:</b></td>
<td>{author}</td>
</tr>
<tr>
<td width="10%"><b>时间:</b></td>
<td>{createTime}</td>
</tr>
<tr>
<td width="10%"><b>内容:</b></td>
<td>{content}</td>
</tr>
</table>
</body>

news.template

接下来使用IO流的InputStream将该文件读取到内存中

 //读取HTML模板文件new.template
public String readFile(String path) throws IOException{
InputStream is=null;
String result="";
try {
@SuppressWarnings("unused")
int data=;
byte[] by =new byte[];
is = new FileInputStream(path);
while((data=is.read(by))!=-){
//result+=(char)data;
//result=new String(data);
result=new String(by,,by.length);
}
} catch (FileNotFoundException e) {
System.out.println("未找到new.template文件!");
e.printStackTrace();
}
finally{
System.out.println("创建成功!");
is.close();
}
//return result.toString();
return result;
}

String readFile(String path) throws IOException

编写方法toHTml()   替换模板文件,为每条新闻创建一个HTML文件来显示其信息

 //读取数据库表,获取新闻列表信息(在此不做讲解)
List<News> list = dao.allInfo();
//编写方法 将从数据库中读取到的数据替换掉news.template文件中的占位符"{}"
String template= fileio.readFile("D:\\news.template"); //替换模板文件,为每条新闻创建一个HTML文件来显示其信息
for (int i = 0; i < list.size(); i++) {
//获取一条新闻信息
News news=list.get(i);
//使用该条新闻信息替换对应占位符
String replacetr = new String();
replacetr=template;
//replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
replacetr=replacetr.replace("{title}",news.getTitle());
replacetr=replacetr.replace("{author}",news.getAuthor());
replacetr=replacetr.replace("{createTime}",news.getDatetime().toString());
replacetr=replacetr.replace("{content}",news.getContent());
//为该条新闻生成HTML文件
String filepath="D:\\dbtohtml\\new"+i+".html"; fileio.writeFile(filepath,replacetr);

toHtml() throws SQLException, IOException

最终结果如下

java中使用String的replace方法替换html模板保存文件的更多相关文章

  1. java中数组有没有length()方法?string没有lenght()方法?

    java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int[] arr={1,2,3,4,5}; int length=arr.length;//求数组的长度 -- ...

  2. Java中的String和StringBuffer

    在任何编程语言中,字符串都是我们编写程序时不可避免要用到的常用的数据类型之一. 对于Java初学者而言,当谈到String和StringBuffer的区别时,通常都会有些困惑. 而要弄清楚两者之间的区 ...

  3. 【翻译】为什么Java中的String不可变

    笔主前言: 众所周知,String是Java的JDK中最重要的基础类之一,在笔主心中的地位已经等同于int.boolean等基础数据类型,是超越了一般Object引用类型的高端大气上档次的存在. 但是 ...

  4. Java中的String为什么是不可变的?

    转载:http://blog.csdn.net/zhangjg_blog/article/details/18319521 什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那 ...

  5. Java基础知识强化101:Java 中的 String对象真的不可变吗 ?

    1. 什么是不可变对象?       众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对 ...

  6. Java中字符串的一些常见方法

    1.Java中字符串的一些常见方法 /** * */ package com.you.model; /** * @author Administrator * @date 2014-02-24 */ ...

  7. JavaScript -- 时光流逝(三):js中的 String 对象的方法

    JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javasc ...

  8. Java中的String为什么是不可变的? — String源码分析

    原文地址:http://www.importnew.com/16817.html 什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为 ...

  9. 【转】Java中的String为什么是不可变的? -- String源码分析

    什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不 ...

随机推荐

  1. vs2017 添加引用时 未能完成操作。不支持此接口

    打开vs2017开发者命令提示符 切换至安装下的指定目录 执行下面的命令就可以了    需要注意的是一定要用vs2017的开发人员命令提示符  别用cmd gacutil -i Microsoft.V ...

  2. pogresql基础学习笔记

    命令行工具:psql 可视化工具:pgAdmin 查看所有表: 命令行:\d sql:select * from pg_tables WHERE schemaname='public'; 查看表结构: ...

  3. codevs2449 骑士精神

    题目描述 Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标 ...

  4. android获取年月日时分秒

    Calendar calendar=Calendar.getInstance(); //获取当前时间,作为图标的名字 String year=calendar.get(Calendar.YEAR)+& ...

  5. Spring MVC集成thymeleaf时提示:defined in ServletContext resource [/WEB-INF/SrpingMVCTest-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException

    错误提示: defined in ServletContext resource [/WEB-INF/SrpingMVCTest-servlet.xml]: Instantiation of bean ...

  6. 5.配置globals文件(目标端)

            mgr进程是goldengate软件执行的主进程.是由这个进程控制其它进程的,比方extract,replicat进程等. 对于mgr进程的配置,将会在以下介绍. global文件我们 ...

  7. 大数据技术之Flume研究摘要(一)

    Flume是Cloudera提供的一个高可用的,高可靠的.分布式的海量日志採集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同一时候,Flume提供对数据进行简单处理 ...

  8. #HDU 3790 最短路径问题 【Dijkstra入门题】

    题目: 最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. ZOJ 1860:Dog & Gopher

    Dog & Gopher Time Limit: 2 Seconds      Memory Limit: 65536 KB A large field has a dog and a gop ...

  10. 把TXT GB2312文件转换成TXT UTF8文件

    /// <summary>        /// 把TXT GB2312文件转换成TXT UTF8文件        /// </summary>        /// < ...