Java读取网页输出txt_java读取txt文件,提取目录为html文件

这个Java程序读取txt文件,基于每章标题(以'章 '开头)生成独立的html页面,并创建一个包含所有章节链接的contents.html目录文件。程序包括读取、解析、写入html和构建章节导航的功能。
摘要由CSDN通过智能技术生成

(文中的代码源于链接:http://blog.csdn.net/inowcome/article/details/6047661,但自己运行时稍有问题,做了修改。)

代码功能:java读取txt文件的小应用,将txt文件里面的章节信息提取出来,生成一个动态链接的html文档。该代码源于网络,自己加以修改。给出核心的内容:

/*

* 用来将只放在一个文件中的小说切隔成

* 一个章节的html页面,其中每个页面还包括上一页,下一页,目录 的超链接

* 同时还生成一个目录文件contents.html

*====================

*注意源码的编码是:utf-8

*文件读取的来源文件的编码也需是utf-8

*===================

*这里的神墓的切隔的原理是:

*根据第一个章节的标题都包含:"章 "

*

*/

import java.io.*;

import java.util.ArrayList;

import java.util.Scanner;

public class GeneraeHtml {

private ArrayList fileNames;

public  GeneraeHtml()

{

fileNames=new ArrayList();

}

public void generateHtmlByFile(File file)throws Exception

{

generate(file);

generateContent();

}

//Create all chapters's html file

private void generate(File file)throws Exception

{

String encoding = "GBK";

boolean isFirstTitle=true;

//Scanner sca=new Scanner(file);

Scanner sca = new Scanner(new InputStreamReader(

new FileInputStream(new File("e:/novel.txt")), encoding));

String currentContent="";

String currentLineStr="";

String currentPageFileName="";

String nextPageFileName="";

int currentPageIndex=-1;

//sca.useDelimiter("/n");

//while(sca.hasNext())

while(sca.hasNextLine())

{

currentLineStr=sca.nextLine();

System.out.println(currentLineStr);

if(currentLineStr.indexOf("章 ")!=-1)

{

if(!isFirstTitle)

{

System.out.println("Current output title:"+currentPageFileName);

nextPageFileName=(currentPageIndex+1)+currentLineStr.trim()+".html";

fileNames.add(nextPageFileName);

writeContent(currentContent,currentPageFileName,currentPageIndex);

currentPageFileName=nextPageFileName;

currentContent="";

}

else

{

currentPageFileName=(currentPageIndex+1)+currentLineStr.trim()+".html";

fileNames.add(currentPageFileName);

isFirstTitle=false;

}

currentPageIndex++;

}

currentContent+=currentLineStr+"";

}

System.out.println(currentPageIndex);

sca.close();

}

//It will write the current chapter into a html file

private void writeContent(String bodyContent,String currentFileName,int currentPageIndex)throws Exception

{

int previousPageIndex=0;

int nextPageIndex=currentPageIndex+1;

if(currentPageIndex!=0)

{

previousPageIndex=currentPageIndex-1;

}

String pageContent="/n

/n"

+"/n"

+"/n

/n"

+bodyContent

+""

+"

+"

"

+"

上一页"

+"

目录"

+"

下一页"

+"

"

+"

"

+"/n";

String filePath="神墓/"+currentFileName;

PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(filePath)));

out.print(pageContent);

out.flush();

out.close();

}

//Create a html file contain chapter's reference.

private void generateContent()throws Exception

{

String pageContent="/n

/n"

+"/n"

+"/n

/n"

+"

+"

";

for(int i=0;i

{

String item=fileNames.get(i);

pageContent+="

"+item+"";

if((i+1)%3==0)

{

pageContent+="

/n";

}

}

pageContent+="

/n/n";

PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("神墓/contents.html")));

out.print(pageContent);

out.flush();

out.close();

}

public static void main(String[] args) {

GeneraeHtml generaeHtml=new GeneraeHtml();

try

{

File file=new File("E:/novel.txt");

generaeHtml.generateHtmlByFile(file);

}catch(Exception e)

{

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值