在我们的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. 如何绘制caffe网络训练曲线

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51774966 当我们设计好网络结构后, ...

  2. 初次使用Let's encrypt

    wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks ...

  3. Why does MySQL produce so many temporary MYD files?

    http://dba.stackexchange.com/questions/30505/why-does-mysql-produce-so-many-temporary-myd-files Data ...

  4. noip模拟赛 捡金币

    问题描小空正在玩一个叫做捡金币的游戏.游戏在一个被划分成 n行 n列的网格状场地中进行.每一个格子中都放着若干金币,并且金币的数量会随着时间而不断变化. 小空的任务就是在网格中移动,拾取尽量多的金币. ...

  5. J2EE 课件2

    1.JSP页面可由5种元素组合而成: ① 普通的HTML标记符: ② JSP标记,如指令标记.动作标记: ③ 变量和方法的声明: ④ Java程序片: ⑤ Java表达式 2.声明变量和方法 JSP页 ...

  6. Luca Canali

    https://github.com/LucaCanali http://cern.ch/canali/

  7. 在Electron中通过ffi模块实现JavaScript调用C++动态库

    目前在网上能搜到的JS调C++动态库的实现有两种,一种是通过开发Node.js addon模块的方式实现调用,这种对于我们已有的代码实现比较复杂,需要大量的开发,因此不适用:另一种是通过FFI模块,F ...

  8. 大话USB驱动之总线驱动程序

    转载注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25040009 总线驱动是不用改的.内核都帮我们做好了.为了了解整个USB驱动的体 ...

  9. ObjectiveC开发教程--字符串的连接

    NSString *type = @"hello"; NSString *subtype = @"good"; NSString *typesub = [NSS ...

  10. 在Tomcat服务器中去端口访问域名

    在刚购买域名并解析后,从外网访问Tomcat服务器时是需要在域名后面加端口":8080".要去端口访问的步骤如下: 在Tomcat目录下的conf文件夹下,打开server.xml ...