近期为处理文本类型(txt)的实验数据,使用了 BufferedReader 来进行按行读取并提取需要的数据。
PS :因为本人并没有学习过 Python 处理数据并作图的技术,想着只是要将有用数据提出,之后在 orgin 中进行绘图即可,就用刚学的 Java 的 IO 流知识进行解决,也算是检验自己的学习成果吧。
目标需求
为了将数据提取出来在 orgin 中进行画图,需要按下面的要求进行处理:
- 文本数据是按行呈现的
- 每一行中有不需要的字符,比如数据名、冒号、单位、正负号和百分比等
- 两行数据之间有一行空格
- 只提取数据量有效数值
- 前面多余的零需要去掉,但表示小数的零需要保留
思路
利用处理速度快的缓冲流 BufferedReader 实现按行读取,遇到空行则跳过。对于有效行,匹配我们所需要的数据前缀来读取,并利用 String 中的 subString 方法来截取弃掉前后缀的子串。再根据情况将无用的零处理掉。在控制台按行输出数据即可。
代码实现
将处理方法封装成了一个 ReadFileDataUtil 工具类
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileDataUtil {
public static void readExperData(String fileName, String prefix, int prefixCharNum