龙空技术网

Java word读取/导出/修改 最强工具 aspose(2.1 读取纯文本)

EYE33 68

前言:

如今你们对“java读写文本文件”大致比较关注,看官们都需要剖析一些“java读写文本文件”的相关资讯。那么小编同时在网络上收集了一些关于“java读写文本文件””的相关文章,希望姐妹们能喜欢,各位老铁们一起来学习一下吧!

1.测试word文档准备

就1行标题 2行空白 2行正文 共5行

2 读取方法

    @SneakyThrows    @PostMapping("readTxtOnly")    public Ret readTxtOnly(MultipartFile wordFile){        try(InputStream inputStream = wordFile.getInputStream()){            Document doc = new Document(inputStream);            //非deep方式 仅获取当前节点下的数据 Document节点下是Section 因而没有段落            NodeCollection childNodesNoDeep = doc.getChildNodes(NodeType.PARAGRAPH, false);            log.info("非deep方式获取段落节点数量:{}",childNodesNoDeep.getCount());            //非deep方式 将遍历该节点下的所有子孙节点 因此可以获取到所有的段落            NodeCollection childNodesDeep = doc.getChildNodes(NodeType.PARAGRAPH, true);            log.info("deep方式获取段落节点数量:{}",childNodesDeep.getCount());            log.info("↓↓↓↓↓↓↓↓↓以下为段落中的文本↓↓↓↓↓↓↓↓↓");            for (Object childNode : childNodesDeep) {                Paragraph paragraph = (Paragraph)childNode;                log.info(paragraph.getText());            }        }        return Ret.success();    }
#3 发起请求4 控制台输出
2022-11-25 09:44:03.721  INFO ReadWordHandler      : 非deep方式获取段落节点数量:02022-11-25 09:44:03.721  INFO ReadWordHandler      : deep方式获取段落节点数量:52022-11-25 09:44:03.721  INFO ReadWordHandler      : ↓↓↓↓↓↓↓↓↓以下为段落中的文本↓↓↓↓↓↓↓↓↓2022-11-25 09:44:03.722  INFO ReadWordHandler      : 标题2022-11-25 09:44:03.722  INFO ReadWordHandler      : 2022-11-25 09:44:03.722  INFO ReadWordHandler      : 第一段2022-11-25 09:44:03.722  INFO ReadWordHandler      : 2022-11-25 09:44:03.722  INFO ReadWordHandler      : 第二段  

实际上最后一行的输出中 包含了1个特殊的符号 这个是什么呢 我们可以断点看下

通过观察 我们发现 控制台最后输出的特殊符号 实际上是"\f" 这是个换页符

5 读取结果分析

前面4行的输出 没什么问题 就是正常的文本读取

最后1行的输出 出现了一个换页符 为什么会出现这个符号呢 我们来逐步测试分析下

5.1 在视图中 点选普通视图 观察

我们可以看到 有这么一个黑色的粗横杠 我猜测就是这个东西 在读取最后1行时 解析成了换页符"\f"

5.1 将文档撑满2页 观察普通视图 看看输出结果

先撑满2页

普通视图

在普通视图中 看到第二页的第3行后面 出现了这个符号

估计打印出来的结果 就是第2页第3行 会出现换页符

控制台打印输出

ok 估计的没问题 就是这里出现了换页符

那么我们可以推断 一个word 他的最后1行会默认有一个换页符 那么换页符会出现多个吗 我们根据他的字面意思可以猜测 应该可以出现多个 那么怎么出现呢

首先 我们可以看到页面布局 这边有个分隔符 点开来 可以看到分页符的功能 现在尝试在第1页最后1行插入该分页符 并在普通视图中观察

插入后 我们在比对页面视图和普通视图时 发现横粗杠只有最后才有 这里先保留疑问 直接看读取结果

我们发现在插入过分页符的位置 出现了特殊符号"换页符" 同时原先页面最后的位置 也出现了"换页符"

最终 我们可以得出结论如下:

1个word文档 默认在最后1行会带上1个换页符 这个换页符不可见

也可以通过插入分页符功能增加该符号

我们在读取数据时 这个符号不影响数据的读取结果 如果不喜欢读取后保留这个符号 那就replace成空串即可

标签: #java读写文本文件