封装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);
}
}
分享到:
相关推荐
2. **流处理**:该库提供了许多处理输入/输出流的工具类,如`StreamUtils`,可以方便地进行流的复制、关闭和空值检查。此外,`IOUtils`类包含了对字节流和字符流的转换,以及读取和写入整流的功能。 3. **字符集...
Commons IO库通过提供这些便利的工具类,简化了Java开发中的IO操作,使开发者能够更专注于业务逻辑,而不是底层的文件和流处理细节。在实际开发中,尤其是在处理大量文件操作或者需要跨平台兼容性时, Commons IO ...
- **文件和流操作**: 提供了大量与文件和流操作相关的工具类,如`FileUtils`、`IOUtils`等,使得文件操作更加简单易用。 - **读写操作**: `FileUtils`类提供了静态方法用于文件的读取、写入、复制、移动和删除,...
Apache Commons IO 是一个Java库,专注于提供各种I/O操作的实用工具类,这些操作包括文件、流、过滤器、读写、转换、检测等。在本案例中,我们讨论的是"commons-io-2.4"版本,这个版本包含了完整的Apache Commons IO...
Apache Commons IO 是一个Java库,它提供了一系列实用工具类来处理输入/输出操作。这个压缩包包含从0.1版本到2.4版本的所有Apache Commons IO的发布。这些版本跨越了多个年份,反映了该库在发展过程中的功能增强、...
在提供的文件名中,我们看到的是两个关键组件:`commons-fileupload-1.2.2` 和 `common-io-2.0.1`,它们是Apache Commons项目中的两个重要部分。 **Apache Commons FileUpload** 是一个用于处理HTTP请求中包含文件...
Apache Commons IO是Java开发中常用的一个开源库,其核心组件是`common-io.jar`,这个库提供了大量的实用工具类,用于处理日常的输入/输出(I/O)操作。在Java标准库中,I/O操作虽然已经提供了一定的支持,但Apache ...
这个库被称为"Common-io工具类",它包含了大量的静态方法,可以用于各种常见的I/O操作,而无需创建额外的对象,从而提高了代码的效率和可读性。 一、文件操作 在Commons IO中,`FileUtils`类是处理文件操作的核心...
Apache Commons IO库 (`commons-io-2.6.jar`) 是一套针对输入/输出操作的通用工具类集合。它提供了大量的实用方法,涵盖了文件操作、流操作、转换、读写操作、字符集检测等诸多方面。在处理文件上传时,`commons-io`...
Commons-IO 包括 工具类 (utility classes), 字节序列类 (endian classes), 行迭代器 (line iterator), 文件过滤器 (file filters),文件比较器 (file comparators) 和 流实现 (stream implementations).
这个库提供了大量的实用工具类,简化了常见的文件、流、过滤器、读写操作等任务。"commons-io-2.11.0.rar"是Apache Commons IO库的版本2.11.0的压缩包文件,包含了该版本的所有源代码、类库和相关的文档。 Apache ...
以上只是 `commons-io-2.6.jar` 中部分关键功能的概述,实际使用中,根据具体需求,可以灵活组合这些工具类和方法,以满足各种 I/O 相关的需求。Apache Commons IO 以其强大的功能和良好的兼容性,广泛应用于各种 ...
这个库提供了一系列与输入输出操作相关的实用工具类,极大地简化了Java程序员处理IO任务的复杂性。标题提到的"commons-io-2.4.jar"是这个库的一个版本,版本号为2.4,表明它是官方发布的稳定版本,对先前版本进行了...
Apache Commons IO是Apache软件基金会开发的一个Java库,它提供了大量的实用工具类,简化了I/O操作,包括文件、流、过滤器、读写操作、转码等。在本教程中,我们将深入探讨如何使用Apache Commons IO进行转码,特别...
Apache Commons IO是另一个非常实用的Java库,它提供了大量的I/O操作工具类,涵盖了文件操作、流操作、字符集转换等许多方面。"commons-io-2.4-bin"这个压缩包中包含的则是Commons IO库的二进制版本,以及可能的文档...
标签“common-io”指的是Apache Commons IO,这是一个Java类库,包含了大量与I/O相关的实用工具类,支持文件、流、过滤器、读写操作、转换、检测等功能。在这个项目中,我们可能会用到`FileAlterationObserver`和`...
Apache Commons IO是一个Java库,提供了大量的实用工具类,用于处理基本的IO操作,如读写文件、复制流、处理路径等。而Apache Commons FileUpload则专门用于处理HTTP请求中的多部分数据,即文件上传。 二、Servlet...
`commons-io-1.4.jar`是Apache Commons IO库的一个版本,它包含了大量与I/O操作相关的工具类。这个库是对Java标准库的扩展,提供了一些额外的功能和便利性。在与FileUpload配合使用时,IO库可以用来: 1. **文件...
其中,`commons-io-2.4.jar`是该库的一个特定版本,适用于Eclipse和MyEclipse等集成开发环境,为Java开发者提供了丰富的IO工具类,大大简化了日常的IO操作。在这个版本中,Apache Commons IO提供了大量实用的功能,...
`commons-io-2.4.jar`则是Apache Commons IO的实现,这是一个用于处理I/O操作的通用库,包括文件操作、流操作、转换、读写、比较、拷贝等。在处理文件上传和下载的过程中,IO库提供了许多实用工具类和方法,如文件的...