`
_Yggd
  • 浏览: 89287 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
阅读更多
大家在看小说的时候有没有想过小说的章回是怎么排出来的?还有是怎么存储的?

关于怎么存储的话,不外乎两种情况
1、文件存储
2、数据库存储

1、第一种方式是操作起来是比较方便,比如用户点击小说的章回,然后后台就直接返回
章节的字符串信息到前台。不好的一点就是管理起来不是那么方便,因为本来是应该存放进数据库中的数据,现在却存在硬盘中,而且数据库中操作起来比操作系统磁盘启动读取数据快
用java中的流操作如下:

public static final String CHAPTER_RE = "^\\s*[卷第].{1,20}[卷章].*$";

InputStreamReader istream = new InputStreamReader(new FileInputStream(file), "GBK");
BufferedReader stream = new BufferedReader(istream);
StringBuilder index = new StringBuilder(); //建立索引
int begin,end;
int lineNumber = 0; //行号
String chapterTitle = "前言";
String line = null;   //小说的行数
int chapterCount = 0;  //章节

while ((line = stream.readLine()) != null) {
    lineNumber++;
    if (line.matches(CHAPTER_RE)) {
if (chapterCount <= 6) {
    desc.append(line);
    desc.append("\r\n");
}
chapterCount++;
tailLineNumber = lineNumber - 1;
                index.append("tile="+chapterTitle);
index.append("head="+begin);
index.append("tail="+end);
                index.append(";");
chapterTitle = line;
begin = end;
    }
}


之后将建立起来的做引存进数据库中的text格式的数据中,读取索引的时候对数据库中的索引用java的string方法进行截取","操作就可以返回小说的章节行号了(只是读取文件的话不会发生并发读写的问题的)
用户点击章节的时候可以直接对索引的文件行号进行毒操作返回前台页面


如果用数据库存储文本内容的话,最好重新建立一个新的表空间,然后对主表主键进行引用
(哪本数据库书介绍的说大数据比clob  blob之类的文件最好新建表空间引用主表,这样在每次查询的时候就不用涉及到大数据了,比较快一点儿),但是对于文本的操作现在各种数据库的字符串函数不一样,具体应该参考各个数据库的文档
分享到:
评论

相关推荐

    在Android中用textview实现简单的小说分页

    这里提到的"PageAdapterTry"可能就是这样一个自定义的适配器,它负责处理小说章节的分页逻辑。 1. **创建自定义Adapter**: - 继承BaseAdapter或RecyclerView.Adapter,根据项目需求选择合适的基类。 - 实现...

    PHP实例开发源码—Gxlcms有声小说.zip

    2. **数据库设计**:源码可能包含了数据库模型文件,用于定义数据表结构和关系,通常用在MySQL或PDO等数据库连接上,用于存储有声小说的元数据,如书名、作者、章节、时长等。 3. **音频处理**:系统可能包含处理...

    ChatGPT会不会取代小说家

    正如王安忆所言,文学创作终究需要从现实生活中截取素材,年轻人关心作家和文学,归根结底就是在关心文字背后的现实生活,追寻文学承载的人生意义。 “有些东西貌似传奇, 但它底下 还是我们普通的日常生活。” ...

    [ASP]xiaoshuoguanli整站系统

    发表新作品,允许上传小说封面,及指定该小说是否允许游客浏览,也可指定观看该小说是否需要花费网站金币,如需花费金币,那么每次浏览小说所得金币将加入作者金币内。(可在后台按照个人喜好而设置) 3、增加章节 ...

    牲畜林(2).ppt

    - **截取生活的横断面**:选取某一时刻或场景,展示生活的瞬间,同样以《桥边的老人》为例。 - **以心理为中心的结构**(意识流):如《墙上的斑点》,通过主人公的内心活动展开故事,思绪流动而不失条理。 5. **...

    一个功能比较齐全的分页类库

    对于数组分页,类库可能会使用数组切片的方法,根据每页的记录数来截取数组的一部分,这样也能达到分页效果,尤其适用于内存中已经加载了所有数据的情况。 在使用过程中,该类库提供了丰富的自定义选项。你可以调整...

    MP3万能分割器

    无论是为了去除广告、截取喜爱的部分,还是为了制作铃声,这款软件都能满足你的需求。 在使用MP3万能分割器时,首先你需要了解MP3文件的基本知识。MP3是一种广泛使用的音频压缩格式,全称为MPEG-1 Audio Layer 3。...

    android版手机自动发图并播读屏幕朗读

    android版手机自动发图并播读屏幕朗读,只支持android,部分手机可能报有毒,请允许可用就行,请放心使用,支持自动截取手机屏幕,不区分应用,不管是看小说,看pdf,看视频都支持,只读屏幕内容并进行语音朗读

Global site tag (gtag.js) - Google Analytics