`
assertmyself
  • 浏览: 28638 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

IO操作工具类--基于common-io

阅读更多
封装IO的一些常用操作:基于Common-io  :IOUtils方法


CommonUtils.java
package com.gbcom.frame.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

/**
 * 封装IO的一些常用操作:基于Common-io  :IOUtils方法
 *   1.read.write.copy.delete.convert
 * 
 * 
 * 无异常  无空指针
 * @author SYZ
 * @date 2014-12-4,上午10:20:22
 * @version v1.0.0
 * @see com.gbcom.frame.io.CommonUtils
 */
public class CommonUtils {
	private static List<String> readLines(File file) throws IOException{
		return readLines(file,"UTF-8");
	}
	private static List<String> readLines(File file,String encoding) throws IOException{
		return FileUtils.readLines(file, encoding);
	}
	private static List<String> readLines(InputStream input) throws IOException{
		return readLines(input,"UTF-8");
	}
	private static List<String> readLines(InputStream input,String encoding) throws IOException{
		return IOUtils.readLines(input, encoding);
	}
	private static List<String> readLines(Reader read) throws IOException{
		return IOUtils.readLines(read);
	}
	
	/**
	 * 读取文件,保存到byte数组中:不需要指定具体编码格式
	 * @param srcFile
	 * @return
	 */
	public static byte[] read(String srcFile){

		File file = new File(srcFile);
		InputStream input = null;
		try{
			input = new FileInputStream(file);
			return IOUtils.toByteArray(input);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			IOUtils.closeQuietly(input);
		}
		return new byte[0];
	
	}
	/**
	 * 读取文件:保存到String对象中,默认使用utf-8作为编码格式
	 * @param srcFile
	 * @return
	 */
	public static String readAll(String srcFile){
		File file = new File(srcFile);
		InputStream input = null;
		try{
			input = new FileInputStream(file);
			return IOUtils.toString(input, "utf-8");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			IOUtils.closeQuietly(input);
		}
		return "";
	}
	/**
	 * 读取文件,按行分割保存到list中,默认编码格式为utf-8
	 * @param srcFile
	 * @return
	 */
	public static List<String> readLines(String srcFile){
		File file = new File(srcFile);
		InputStream input = null;
		try {
			input = new FileInputStream(file);
			return readLines(input,"utf-8");
			//IOUtils.readLines(input, encoding);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			IOUtils.closeQuietly(input);
		}
		return new ArrayList<String>(0);
	}
	/**
	 * 写文件。最原始的方式,支持 byte数组,无序提供编码格式
	 * @param srcFile
	 * @param data
	 */
	public static void wirte(String srcFile,byte[] data){
		File file  = new File(srcFile);
		OutputStream out = null;
		try {
			out = new FileOutputStream(file);
			IOUtils.write(data, out);
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			if(out !=null){
				IOUtils.closeQuietly(out);
			}
		}
	}
	/**
	 * 一次性写入文件,如果需要分行,需要再buffer中使用\n 实现
	 * @param srcFile
	 * @param buffer
	 */
	public static void writeAll(String srcFile,StringBuffer buffer){
		File file  = new File(srcFile);
		OutputStream out = null;
		try {
			out = new FileOutputStream(file);
			IOUtils.write(buffer, out,"utf-8");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(out !=null){
				IOUtils.closeQuietly(out);
			}
		}
	
	}
	/**
	 * 写文件:支持多行写入,list提供
	 * @param srcFile
	 * @param lines
	 */
	public static void writeLines(String srcFile,List<String> lines){
		File file  = new File(srcFile);
		OutputStream out = null;
		try {
			out = new FileOutputStream(file);
			IOUtils.writeLines(lines, null, out, "UTF-8");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(out !=null){
				IOUtils.closeQuietly(out);
			}
		}
	}
	

	/**
	 * 在文件末尾添加:仅支持
	 * @param scrFile
	 * @param Lines
	 */
	public static void appendWrite(String srcFile,List<String>lines){
		File file  = new File(srcFile);
		OutputStream out = null;
		try {
			out = new FileOutputStream(file,true);//append
			IOUtils.writeLines(lines, null, out, "UTF-8");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(out !=null){
				IOUtils.closeQuietly(out);
			}
		}
	
		
	}
	/**
	 * 在文件末尾添加:仅支持 List 和 StringBuffer 其他省略
	 * @param scrFile
	 * @param Lines
	 */
	public static void appendWrite(String srcFile,StringBuffer buffer ){
		File file  = new File(srcFile);
		OutputStream out = null;
		try {
			out = new FileOutputStream(file,true);//append
			IOUtils.write(buffer, out, "UTF-8");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(out !=null){
				IOUtils.closeQuietly(out);
			}
		}
	}
	
	
	/**
	 * 拷贝文件,,return count  failed  return -1
	 * @param src
	 * @param dest
	 */
	public static int  copy(String src,String dest){
		File srcFile = new File(src);
		File destFile = new File(dest);
		
		InputStream input = null;
		OutputStream output = null;
		try {
			input = FileUtils.openInputStream(srcFile);
			output = new FileOutputStream(destFile);
			return IOUtils.copy(input, output);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(output !=null){
				IOUtils.closeQuietly(output);
			}
			if(input !=null){
				IOUtils.closeQuietly(input);
			}
		}
		return -1;
	}
	
	/**
	 * 支持文件夹操作
	 * @param dest
	 */
	public static void delete(String ... dests){
		for(String dest : dests){
			File file = new File(dest);
			try {
				FileUtils.forceDeleteOnExit(file);
			} catch (IOException e) {
				e.printStackTrace();
				continue;
			}finally{
				file = null;
			}
		}
	}
	
	
	public static void main(String args []) throws IOException{
		String dir = "d:\\";
		String srcName = "xxx.jpg";
		String destName = "test.xds";
		
		
//		FileUtils.forceMkdir(new File(dir));
//		
//		copy(dir+File.separator+srcName,dir+File.separator+destName);
		
		delete(dir+File.separator+srcName,dir+File.separator+destName);
	}
}
分享到:
评论

相关推荐

    Common-io工具类

    Common-io工具类

    Apache common io转码工具类入门教程

    Apache common io转码工具类入门教程

    commons-io-2.8-source.zip

    Commons-IO 包括 工具类 (utility classes), 字节序列类 (endian classes), 行迭代器 (line iterator), 文件过滤器 (file filters),文件比较器 (file comparators) 和 流实现 (stream implementations).

    commons-io-2.8-binaries.zip

    Commons-IO 包括 工具类 (utility classes), 字节序列类 (endian classes), 行迭代器 (line iterator), 文件过滤器 (file filters),文件比较器 (file comparators) 和 流实现 (stream implementations).

    commons-io-2.4 源码

    commons-io-2.4供大家学习,官网只有最新版。是一款处理io流的工具,封装了很多处理io流和文件的方法,...从common-io的官方使用文档可以看出,它主要分为工具类、尾端类、行迭代器、文件过滤器、文件比较器和扩展流。

    Jsp文件上传下载(工具类源码)

    commons-io-1.3.2.jar upload2.jsp *" pageEncoding="gb2312"%&gt; &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; ...

    common-utils:java 基础工具包

    工具包 common-util: 基础工具包,不依赖于任何jar common-util-ext : 依赖第三方的工具包 common-util-test : 测试用的工具包

    common-toolkit.rar

    平时工作积累封装的一些工具类,包括hibernate底层封装,字符串,日期的转换,缓存,分页,email,tree,log,json,gson,struts2,spring,io等一些常用的工具类,足够满足日常开发了,能帮助开发者提高一些效率.....

    guava16.0 chm文档

    基本工具类库和接口。  com.google.common.cache:缓存工具包,非常简单易用且功能强大的JVM内缓存。  com.google.common.collect:带泛型的集合接口扩展和实现,以及工具类,这里你会发现很多好玩的集合。  ...

    Android代码-CommonLibary

    CommonLibrary主要是自己整理的一些项目开发中常用的工具类、通用UI的集合,目前在不断的更新中,尽可能的覆盖Android开发中通用的一些东西 。 &gt; anim &gt; -- AnimationUtils、ViewAnimationUtils。动画工具类,也可...

    前端-后端java的Util类的工具类

    ├─28个java常用的工具类 │ │ Base64.java │ │ Base64DecodingException.java │ │ CConst.java │ │ CharTools.java │ │ ConfigHelper.java │ │ Counter.java │ │ CTool.java │ │ DateHandler.java ...

    通用工具类

    1.国际化工具类 2.JDBC工具类,提供数据库连接池,结果集映射成对象功能 ...15.操作系统工具类,可以获取和判断操作系统类型 16.反射工具类 17.Java序列化工具类,支持序列化反序列化,可以用于OSGI环境

    weshop-微信小程序应用商城

    WESHOP | 基于微服务的小程序商城系统 --- Weshop是基于Spring Cloud(Greenwich)开发的小程序商城系统,提供整套公共微服务服务模块,包含用户中心、商品中心、订单中心、营销中心四大基础服务模块,微信端、管理...

    apache-commons源码及jar文件

    Commons-Lang 提供了许多许多通用的工具类集,提供了一些java.lang中类的扩展功能 Latka Commons-Latka 是一个HTTP 功能测试包,用于自动化的QA,验收和衰减测试. Launcher Launcher 组件是一个交叉平台的Java 应用...

    一个简单的开源Android工具类库

    一个简单的开源Android工具类库,提供许多常用的类帮助我们开发程序。 AndroidCommon 一个简单的开源Android工具类库,提供许多常用的类帮助我们开发程序。 These are the Android Common Utils. Class ...

    单点登录源码

    Spring+SpringMVC+Mybatis框架集成公共模块,包括公共配置、MybatisGenerator扩展插件、通用BaseService、工具类等。 &gt; zheng-admin 基于bootstrap实现的响应式Material Design风格的通用后台管理系统,`zheng`...

    Guava 16.0 API (CHM格式)

    Powerful collection utilities(强大的集合工具类): java.util.Collections 中未包含的常用操作工具类  4. Extension utilities(扩展工具类): 给 Collection 对象添加一个装饰器? 实现迭代器? 我们可以更容易...

    Java版水果管理系统源码-xqoo-cloud-admin:xqoo-cloud-admin

    Java版水果管理系统源码 #XQOO-CLOUD 后台管理系统 ##1.0版本 系统搭建数据库建表脚本在根...commons-io常用工具类 commons-fileupload文件上传工具 rg.jsoup HTML解析器 org.apache.poi 表格文件处理 org.apache.veloc

    Apache提供的commons_io组件

    工具类FileUtils操作文件的工具类 static String readFileToString(File file):读取文件内容,并返回一个String; static void writeStringToFile&#40;File file, String data&#41;:将内容content写入到file中; ...

    mall:mall项目是一套电商系统,包括前台商城系统和后台管理系统,基于SpringBoot + MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户,商品推荐,商品搜索,商品展示,购物车后台管理系统包含商品管理,订单管理,会员管理,促销管理,运营管理,内容管理,统计报表,财务管理,权限管理,设置等模块

    购物中心 前言 mall项目致力于打造一个完整的电商系统,采用现阶段流行技术...├── mall - common -- 工具类及通用代码 ├── mall - mbg -- MyBatisGenerator生成的数据库操作代码 ├── mall - security -- Sprin

Global site tag (gtag.js) - Google Analytics