小说章节截取自动生成html文件

目录结构

在这里插入图片描述
FileIO 代码

package readFile;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

/**
 * 文件读写工具类。
 */
public class FileIO {
	/**
	 * 读取文件。
	 * @param filePath 文件路径
	 * @return 文件内容字符串
	 */
	public String readFile(String filePath) {
		Reader fr = null;
		StringBuffer sb = new StringBuffer();
		// 1、读取模板文件内容到StringBuffer
		try {
			fr = new FileReader(filePath);
			char ch[] = new char[1024];
			int length = 0;
			length = fr.read(ch);
			while (length != -1) {
				sb.append(ch);
				length = fr.read(ch);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (null != fr)
					fr.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return sb.toString();
	}
	/**
	 * 写文件。
	 * @param filePath 文件路径
	 * @param str 要写入文件的内容
	 */
	public void writeFile(String filePath, String str) {
		Writer fw = null;
		try {
			fw = new FileWriter(filePath);
			fw.write(str);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (null != fw)
					fw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
InfoVo 代码
package readFile;

public class InfoVo {
	private Integer count;
	private Integer offset;
	private String title;
	private String zengwen;
	public String getZengwen() {
		return zengwen;
	}
	public void setZengwen(String zengwen) {
		this.zengwen = "<div>"+zengwen+"</div>";
	}
	public Integer getCount() {
		return count;
	}
	public void setCount(Integer count) {
		this.count = count;
	}
	public Integer getOffset() {
		return offset;
	}
	public void setOffset(Integer offset) {
		this.offset = offset;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title ="<h2>"+ title+"</h2>";
	}
}
test 代码
package readFile;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


public class test {
  public List<InfoVo> readFile(String path) throws FileNotFoundException {	  	 
	  FileReader  fr =new  FileReader(path);
	  BufferedReader   br= new BufferedReader(fr);
	  List<InfoVo>list =new ArrayList<InfoVo>();//存放小说章节标题
	  List<String>txtlist =new ArrayList<String>();//存放小说内容
	  StringBuffer sb =null;
	  String lineTxt = null;
	  int offset = 0; //章节所在行数
	  int count = 1; //章节数
	  InfoVo infoVo;
	  try {
		while ((lineTxt=br.readLine())!=null) {
			infoVo = new InfoVo();
			offset++;
			if (lineTxt.contains("第") && lineTxt.contains("章")&&(lineTxt.length()<20))  {
			infoVo.setCount(count);
			infoVo.setOffset(offset);
		
			infoVo.setTitle(lineTxt);
			list.add(infoVo);
			count++;	
		   }
			txtlist.add(lineTxt);
		}
		
		for (int i = 0; i <list.size(); i++) {
			sb=new StringBuffer();
			if((i+1) <list.size()) { 
				for (int j = list.get(i).getOffset(); j <=(list.get(i+1).getOffset()-2); j++) {
					
					sb.append("<p>"+txtlist.get(j)+"</p>"+"\n");
				}			
				list.get(i).setZengwen(sb.toString());
			}
		  if((i+1) ==list.size()) {
			  for (int j = list.get(i).getOffset(); j <offset; j++) {
					
					sb.append("<p>"+txtlist.get(j)+"</p>"+"\n");
				}	
			  list.get(i).setZengwen(sb.toString());
		  }
		  
		}
	
		
		
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally {
		try {
			br.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			fr.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
   return list;
}
  public static void main(String[] args) {
	//1、读取模板文件内容,返回文件内容字符串
	FileIO fileio=new FileIO();
	String templatestr=fileio.readFile("C:\\Users\\赵\\Documents\\eclipse\\Projects\\java\\readFile\\src\\readFile\\news.template");
	text text =new text();
	String path ="C:\\Users\\赵\\Desktop\\小说资源\\秦吏.txt";
	try {
	List<InfoVo> list= text.readFile(path);
//	for (InfoVo infoVo : list) {
//		System.out.println(infoVo.getTitle());
//		System.out.println(infoVo.getZengwen());
//	}
	//3、替换模板文件,为每一条新闻创建一个HTML文件来显示其信息
			for(int i=0;i<2;i++){
				//3.1、获取一章小说
				InfoVo info=list.get(i);
				//3.2、使用该条新闻信息替换对应占位符
				String replacestr=new String();
				replacestr=templatestr;
				replacestr = replacestr.replace("{mgs}", info.getZengwen());
								
				//3.3、为该章小说生成HTML文件
				String filePath="C:\\Users\\赵\\Documents\\html\\news"+i+".html";
				fileio.writeFile(filePath, replacestr);
			}	
			System.out.println("创建成功!");
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}
}
模板
<!DOCTYPE html>
<html>
	<head>
		<meta charset="gb2312">
		<title></title>
	</head>
	<body>
		<div>{mgs}</div>
	</body>
</html>

————————————————

原文链接:https://blog.csdn.net/lmsfv/article/details/104915266

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值