看到这样一段代码,功能为读取一个指定文件的内容然后返回。
private String parseContent(String filePath) {
StringBuffer sb = new StringBuffer();
BufferedReader reader = null;
String tempLine = null;
try {
reader = new BufferedReader(new InputStreamReader(
new FileInputStream(filePath)));
while ((tempLine = reader.readLine()) != null) {
sb.append(tempLine);
}
reader.close();
} catch (Exception e) {
if (reader != null) {
try {
reader.close();
} catch (Exception ex) {
log(ex);
}
reader = null;
}
} finally {
if (reader != null) {
try {
reader.close();
} catch (Exception e) {
log(e);
}
}
reader = null;
}
return sb.toString();
}
该代码有如下地方可以改进:
1 使用StringBuiler.
2 使用标准的IO操作写法。
3 原有代码catch异常后,异常被吞没了,导致有可能返回只读了一半的文件。
4 删除原有代码冗余的close方法调用。
5 原有代码在创建 Reader时过于繁琐,可以简化。
6 原有读取逻辑没有考虑文件中包含\r\n的情况,沟通后确认该文件内容的使用与\r\n无关,可以忽略。
改动如下:
private String parseContent2(String filePath) {
StringBuilder sb = new StringBuilder();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(filePath));
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} catch (Exception e) {
log(e);
//使用null表示读取异常。
return null;
} finally {
if (reader != null) {
try {
reader.close();
} catch (Exception e) {
log(e);
}
}
}
return sb.toString();
}
分享到:
相关推荐
描述中的“幅值谱重构语音”指的是从MFCC中恢复出幅度谱,然后使用IFFT将其转换回时间序列。 **谱重构**是指根据频率域信息(如幅度谱或功率谱)重建原始信号的过程。在语音处理中,谱重构对于语音识别、语音合成...
标题中的"【EMD重构】.rar"指的是包含EMD重构过程的压缩文件,而"EMD重构函数"是指在处理EMD分解后的IMF分量时使用的特定函数。"IMF变量重构"则是指将分解得到的各个IMF重新组合成原始信号的过程。"tomorrowi4n"可能...
标题中的“用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构_源码.rar.rar”揭示了该压缩包文件包含的是与信号处理相关的源代码,特别是涉及了三种重要的信号分解方法:Empirical ...
《重构:改善既有代码设计》是一本由Martin Fowler所著的经典IT著作,它详细阐述了在软件开发过程中如何通过重构来提升代码质量、可读性和维护性。重构是一种系统性的方法,旨在不改变软件外在行为的前提下,改进其...
配电网重构是电力系统领域中的一个重要研究课题,它涉及到电力系统的稳定运行与经济效率。配电网重构的目标是在满足一系列约束条件下,通过改变开关状态,优化网络结构,以达到提高供电可靠性、降低运营成本、改善...
重构__改善既有代码的设计_高清 绝对清晰
3. 安全性:重构过程中涉及开关操作,必须避免对电网稳定运行造成影响,确保操作安全。 总之,配电网重构源码的获取为研究和实践提供了宝贵的工具,通过深入学习和应用,可以提升电力系统的运行效率,为智能电网的...
在本文中,我们将深入探讨基于Matlab的压缩感知(Compressive Sensing,简称CS)重构算法的实现。压缩感知是一种理论先进的信号处理方法,它允许我们以远低于奈奎斯特定理所要求的采样率捕获信号,并能恢复原始信号...
这个压缩包中的"第13章 MATLAB图像重构实战"可能包含了一系列的MATLAB脚本和函数,用于演示如何使用MATLAB实现fanbeam变换。这些脚本可能包括数据读取、预处理、fanbeam投影、反投影以及图像重构等步骤。在学习和...
在IT行业中,尤其是在医疗影像处理领域,三维重构技术扮演着至关重要的角色。"NewPrjName.rar" 是一个与三维医学图像重构相关的项目文件压缩包,它涉及到的是使用C++编程语言来实现这一复杂的计算过程。这个项目的...
牛顿拉普逊法就算配电网重构的潮流程序,结构清晰易懂。
资源名:用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构 资源类型:matlab项目全套源码 源码介绍:用于信号的分解、降噪和重构,实现故障诊断 源码说明: 全部项目源码都是经过...
MATLAB是一个强大的数值计算和可视化平台,其内置的小波工具箱提供了丰富的函数支持小波分析,包括小波基的选择、分解、重构等操作。在本项目中,`wavetansform1.m` 文件很可能是用MATLAB编写的一个脚本,用于执行小...
压缩传感重构算法中的子空间追踪算法,用于信号的重构
经验模态分解(Empirical Mode Decomposition,简称EMD)是一种强大的数据分析技术,尤其...通过对这些资源的深入理解和实践,我们可以更好地掌握EMD技术,并将其应用到实际问题中,实现非平稳信号的有效分析和重构。
在电子工程和数字信号处理领域,信号采样与重构是一个至关重要的概念,它涉及到如何将连续时间信号转换为离散...通过学习和实践这些内容,我们可以深入理解信号处理的基本原理,并掌握使用MATLAB进行实际操作的技能。
本资源“BC.rar”包含的是一个基于Windows平台的二维小波分解与重构项目,使用了BC++ 4.5这个编程环境。BC++ 4.5是一款早期的集成开发环境(IDE),主要用于C和C++程序的编写,它提供了基本的编辑、编译、调试等功能...
这个压缩包中的源码很可能是实现了以上步骤的MATLAB函数或脚本,对于学习和实践互信息和相空间重构的学者来说,这是一个宝贵的资源。用户可以通过阅读和运行这些代码,理解相关算法的原理,并将其应用到自己的项目中...