原创 

apache commons io工具类IOUtils的使用,java文件内容读取最佳实践

分类:java    1638人阅读    IT小君  2020-11-04 22:15

java读取文本文件内容,我们一般会使用如下经典读取方法,

public static String readFileContent(String fileName) {
    File file = new File(fileName);
    BufferedReader reader = null;
    StringBuffer sbf = new StringBuffer();
    try {
        reader = new BufferedReader(new FileReader(file));
        String tempStr;
        while ((tempStr = reader.readLine()) != null) {
            sbf.append(tempStr);
        }
        reader.close();
        return sbf.toString();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (reader != null) {
            try {
                reader.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
    return sbf.toString();
}

这段代码挺长的,但是那一句都不能省略。

小编看来这段代码太“脏”了。一个逻辑为啥写这么长!一个业务一行代码才优雅,于是引入了Apache Commons IO的IOUtils ,读写相关实例Demo 如下:

1.从流中读取数据 

FileInputStream fileInputStream = new FileInputStream(new File("d://demo.txt"));
List<String> list = IOUtils.readLines(fileInputStream, "UTF-8");//只要是InputStream流都可以,比如http响应的流
//直接把流读取为String
String content = IOUtils.toString(inputStream,"UTF-8");
//把流转换为byte数组
byte[] bytes = IOUtils.toByteArray(inputStream);

2.把数据写入流

//把数据写入输出流
IOUtils.write("abc", outputStream);
//把字符串转换流
InputStream inputStream = IOUtils.toInputStream("aaaaaaaaa", "UTF-8");

3.流的相互复制

IOUtils.copy(inputstream,outputstream);
IOUtils.copy(inputstream,writer);
IOUtils.copy(inputstream,writer,encoding);
IOUtils.copy(reader,outputstream);
IOUtils.copy(reader,writer);
IOUtils.copy(reader,writer,encoding);

4、流的关闭

try {
     return IOUtils.copy(inputStream, outputStream);
 } finally {
     //优雅的关闭流
     IOUtils.closeQuietly(inputStream);
     IOUtils.closeQuietly(outputStream);
 }


结语:

本文展示了java读取文本文件内容的经典写法的例子,以及引入apache common io的IOUtils 各种操作的实例Demo ,希望对您有所帮助。

 

点击广告,支持我们为你提供更好的服务

html5 canvas进度条圆环图表统计动画特效

网页设计开发公司网站模板

小众时尚单品在线电子商务网站模板

canvas炫酷鼠标移动文字粒子特效

HTML5数字产品服务公司网站模板

jQuery右端悬浮带返回顶部特效

HTML5现代家居装潢公司网站模板

css鼠标跟随文字模糊特效

响应式咖啡饮品宣传网站模板

html5 svg夜空中星星流星动画场景特效

现代时尚家具公司网站模板

响应式时尚单品在线商城网站模板

HTML5 Canvas竖直流动线条背景动画特效

js+css3抽奖转盘旋转点餐代码

html5图标下拉搜索框自动匹配代码

响应式太阳能能源公司网站模板

html5 canvas彩色碎片组合球形旋转动画特效

有机水果蔬菜HTML5网站模板

css+js实现的颜色渐变数字时钟动画特效

中小型创意设计服务公司网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务