博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Google的Guava之IO升华
阅读量:4974 次
发布时间:2019-06-12

本文共 2895 字,大约阅读时间需要 9 分钟。

版权声明:本文为博主原创文章,未经博主同意不得转载。

https://blog.csdn.net/luo201227/article/details/36413279

程序员在开发过程中,使用文件的几率是相当大的,有时候,我们甚至须要几十秒内读取一下IO流中的数据。可是原生态的文件流的读写,一旦操作不当,就有可能出现内存溢出和打开文件数过多的异常错误,这一点在Linux环境下表现得尤其突出,所以使用好原生态的读写文件流真的非常重要!好啦,这里着重来讲一下Google的Guava对IO的操作升级。上一篇讲的Guava对Collection的优化,魅力之处尽在不言中了!

Ok,咱就上代码了!这里使用文件来做Demo:

/** * @Description:  * * @Title: FileGuava.java * @Package com.joyce.guava.main * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-6-26 下午01:18:18 * @version V2.0 */package com.joyce.guava.main;import java.io.File;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import com.google.common.base.Charsets;import com.google.common.io.Files;/** * @Description:Guava的文件 *  * @ClassName: FileGuava * @Copyright: Copyright (c) 2014 *  * @author Comsys-LZP * @date 2014-6-26 下午01:18:18 * @version V2.0 */public class FileGuava {	public static void main(String[] args) {		try {			File readFile = new File(System.getProperty("user.dir") + "/src/resources/showarp.txt");			StringBuilder content = new StringBuilder();			if (readFile.exists()) {				List
lines = readFile(readFile); for (String string : lines) { System.out.println(string); content.append(string + "\n"); } } File writeFile = new File(System.getProperty("user.dir") + "/src/resources/showarp" + new SimpleDateFormat("yyyyMMdd").format(new Date())+ ".txt"); writeFile(content.toString(), writeFile); } catch (Exception e) { e.printStackTrace(); } } /** * @Description: Guava文件读取 * * @param file * @return * * @Title: FileGuava.java * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-6-26 下午01:20:50 * @version V2.0 */ private static List
readFile(File file) throws Exception { if (!file.exists()) { return null; } return Files.readLines(file, Charsets.UTF_8); } /** * @Description: 从文件里获取有规则的数据 * * @param file * @return * * @Title: FileGuava.java * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-6-26 下午01:56:42 * @version V2.0 */ public List
readFileData(File file) throws Exception { List
list = new ArrayList
(); for (String rLine : readFile(file)) { list.add(rLine.split("\\s+")); } return list; } /** * @Description: Guava写文件 * * @param content * @param file * * @Title: FileGuava.java * @Copyright: Copyright (c) 2014 * * @author Comsys-LZP * @date 2014-6-26 下午01:32:06 * @version V2.0 */ private static void writeFile(String content, File file) throws Exception { if (!file.exists()) { file.createNewFile(); } Files.write(content, file, Charsets.UTF_8); }}

文件里的内容为:

代码运行后的效果:

而且将内容写到了另外一个文件里,用起来是不是非常easy呢!

这领域真的是好东西特别多。就看大伙儿肯不肯动手动脑多学学!!!附上本人地址:

转载于:https://www.cnblogs.com/ldxsuanfa/p/10815534.html

你可能感兴趣的文章
向量非零元素个数_向量范数详解+代码实现
查看>>
java if 用法详解_Java编程中的条件判断之if语句的用法详解
查看>>
matlab sin函数 fft,matlab的fft函数的使用教程
查看>>
mysql adddate()函数
查看>>
mysql sin() 函数
查看>>
单片机复位电路
查看>>
php json_decode失败,返回null
查看>>
3-day3-list-truple-map.py
查看>>
Edit控件显示多行文字
查看>>
JS第二周
查看>>
dataTable.NET的search box每輸入一個字母進行一次檢索的問題
查看>>
Python 文件处理
查看>>
邻接表详解
查看>>
迭代dict的value
查看>>
eclipse package,source folder,folder区别及相互转换
查看>>
Py 可能是最全面的 python 字符串拼接总结(带注释版)
查看>>
《Java程序设计实验》 软件工程18-1,3 OO实验2
查看>>
【Herding HDU - 4709 】【数学(利用叉乘计算三角形面积)】
查看>>
OPENSSL使用方法
查看>>
接口操作XML
查看>>