在我们的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. hadoop balancer 二

    1.每次迭代一个datanode会移动不超过如下两者中较小的一个的数据量 1)10G 2)能力阈值 dfs.datanode.balance.bandwidthPerSec 每次迭代时间不会超过20分 ...

  2. 【Codeforces 584C】Marina and Vasya

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 设cnt表示s1和s2不同的字符的个数 如果cnt>2t 因为这cnt个位置肯定至少有一边不同 显然肯定会有一个f(s,S)的值大于t的 ...

  3. Linux - 模块编程初试

    计算机网络的课程设计要做防火墙,老师没有限制在什么系统上面做,所以决定在Linux上实现.找了一下相关的资料,发现其实Linux有提供Netfilter/Iptables,为用户提供防火墙的功能,稍微 ...

  4. 使用spring框架提供的处理中文乱码的过滤器

    在web-xml中直接写上spring框架提供的过滤器即可 <filter> <filter-name>encoding</filter-name> <fil ...

  5. E - 不容易系列之(4)――考新郎 错排数公式

    国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的:  首先,给每位新娘打扮得几乎一模一 ...

  6. Codeforces Round #391(div 1+2)

    A =w= B QuQ C 题意:有n个体育场,每个体育场有一些小精灵,一共m种小精灵(n<=1e5,m<=1e6),可以将数字全为i的精灵进化成j(可以互相进化也可以选择不进化),问有多 ...

  7. Kruscal算法

    Kruscal算法也是最小生成树算法,这个算法感觉起来可能更直观一点,我们要求最小生成树,我们可以依次找图中的最小权重所在的边,只要这些边不构成回路就添加,知道覆盖所有的顶点. 算法的具体过程: 1. ...

  8. java ee标准DataSource理解

  9. C语言实现strcmp()和strcpy()函数

    #include <stdio.h> #include <assert.h> char *strcpy(char *strDest, const char *strScr) { ...

  10. Codeforces 446C —— DZY Loves Fibonacci Numbers(线段树)

    题目:DZY Loves Fibonacci Numbers 题意比較简单,不解释了. 尽管官方的题解也是用线段树,但还利用了二次剩余. 可是我没有想到二次剩余,然后写了个感觉非常复杂度的线段树,还是 ...