`

JAVA文件处理工具类

    博客分类:
  • JAVA
阅读更多
package com.test;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class FileHanlder {
	
	/**
	 * 写入文件
	 * @param in 输入流
	 * @param out 输出流
	 * @return 成功返回真
	 * @throws IOException
	 */
	public static boolean writer(InputStream in,OutputStream out) throws IOException{
		return writer(in,out,null);
	}
	
	/**
	 * 写入文件
	 * @param in 输入流
	 * @param out 输出流
	 * @param byteSize 字节数组大小
	 * @param bufferedSzie 缓冲大小
	 * @return 成功返回真
	 * @throws IOException
	 */
	public static boolean writer(InputStream in,OutputStream out,Integer byteSize) throws IOException{
		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;
		try {
			if (in != null && out != null) {
				if(byteSize==null){byteSize = 1024;}
				bis = new BufferedInputStream(in);
				bos = new BufferedOutputStream(out);
				byte[] bs = new byte[byteSize];
				int len = -1;
				while((len=bis.read(bs))!=-1){
					bos.write(bs, 0, len);
				}
				bos.flush();
			}
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}finally{
			if(in!=null){in.close();}
			if(out!=null){out.close();}
			if(bis!=null){bis.close();}
			if(bos!=null){bos.close();}
		}
		return true;
	}
	
	/**
	 * 读取字符文件
	 * @param path 文件路径
	 * @return String 字符串
	 */
	public static String readString(String absolutePath){
		BufferedReader read = null;
		try {
			read = new BufferedReader(new FileReader(new File(absolutePath)));
			StringBuffer sb = new StringBuffer();
			String temp  = null;
			while((temp = read.readLine()) != null){
				sb.append(temp);
				temp = read.readLine();
			}
			return sb.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {read.close();} catch (IOException e) {}
		}
		return null;
	}

	/**
	 * 读取一个对象
	 * @param path 文件路径
	 * @return Object对象
	 */
	public static Object readOjbect(String absolutePath){
		ObjectInputStream input = null;
		try {
			input = new ObjectInputStream(new FileInputStream(new File(absolutePath)));
			return input.readObject();
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			try {input.close();} catch (IOException e) {}
		}
		return null;
	}

	/**
	 * 写入一个对象
	 * @param obj 传入一个对象
	 * @param target 文件目标位置
	 * @return 成功返回 true 失败返回 false
	 */
	public static boolean writerObject(Object obj,String absolutePath){
		ObjectOutputStream out = null;
		try {
			out = new ObjectOutputStream(new FileOutputStream(absolutePath));
			out.writeObject(obj);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			try {out.close();} catch (IOException e) {}
		}
		return false;
	}

	/**
	 * 写入字符文件
	 * @param content 内容
	 * @param path 文件目标路径
	 * @return 成功返回 true 失败返回 false
	 */
	public static boolean writer(String content,String path){
		return  writer(content,path,false);
	}

	/**
	 * 写入字符文件
	 * @param content 内容
	 * @param path 文件目标路径
	 * @param append 是否要在原来的文件追加
	 * @return 成功返回 true 失败返回 false
	 */
	public static boolean writer(String content,String path,boolean isAppend){
		BufferedWriter writer = null;
		try {
			writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path),isAppend)));
			writer.write(content);
			writer.flush();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {writer.close();} catch (IOException e) {}
		}
		return false;
	}

	/**
	 * 复制文件
	 * @param source 源文件
	 * @param target 目标位置
	 * @return 成功返回 true 失败返回 false
	 */
	public static boolean copy(String source,String target){
		InputStream input = null;
		OutputStream out = null;
		try {
			input = new FileInputStream(new File(source));
			out = new FileOutputStream(target);
			//long size = input.available();
			int len = 0;
			byte[] bytes = new byte[1024*1024*3];
			while(((len = input.read(bytes))<=0)){
				out.write(bytes,0,len);
			}
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {input.close();out.close();} catch (Exception e2) {}
		}
		return false;
	}

	/**
	 * 剪切文件
	 * @param source 源文件
	 * @param target 目标位置
	 * @return 成功返回 true 失败返回 false
	 */
	public static boolean cut(String source,String target){
		InputStream input = null;
		OutputStream out = null;
		try {
			input = new FileInputStream(new File(source));
			out = new FileOutputStream(target);
			int len = 0;
			byte[] bytes = new byte[1024*3];
			while(((len = input.read(bytes))<=0)){
				out.write(bytes,0,len);
			}
			return new File(source).delete();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {input.close();out.close();} catch (Exception e2) {}
		}
		return false;
	}

	/**
	 * 删除文件
	 * @param path 目标位置
	 * @return 成功返回 true 失败返回 false
	 */
	public static boolean delete(String absolutePath){
		return new File(absolutePath).delete();
	} 

	/**
	 * 传入一个文件路径
	 * 获取子文件和文件夹
	 * @param path 文件路径
	 * @return String[] 文件和文件夹的路径集合
	 */
	public static String[] fileList(String path){
		File file = new File(path);
		if(file.isDirectory()){
			return file.list();
		}
		return null;
	} 
	
	/**
	 * 获取类路径下的资源文件
	 * @param fileName 文件名称
	 * @return 输入流
	 * @throws IOException
	 */
	public InputStream getClassPathInputStream(String fileName)throws IOException{
		return Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
	}
}

 

分享到:
评论

相关推荐

    Java文件处理工具类--FileUtil

    import java.io.*; /** * FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /**...

    Java 文件处理工具类

    主要功能: 扫描目录下的文件 获取文件后缀名 获取文件名,去除后缀名 转成File 从下载链接中过去File等

    [史上最全] 文件处理工具类 java版 处理文件流, 文件目录递归等

    ### 文件处理工具类详解 #### 一、概述 在Java开发过程中,经常需要对文件进行各种操作,如读取、写入、复制、删除等。本文介绍了一个实用且功能全面的文件处理工具类——`FileUtils`。该类封装了50多个与文件相关...

    完整的java文件读写工具类

    本篇将详细讲解标题为"完整的java文件读写工具类"所涉及的核心知识点,以及如何实现描述中提到的文件与目录管理功能。 1. **Java IO基础**: Java IO是Java标准库中的核心部分,提供了处理输入/输出流的类。在`...

    java 中 zip压缩文件解压工具类

    本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...

    java文件处理工具类详解

    Java文件处理工具类是Java开发中非常重要的一个部分,它提供了对文件操作的各种功能,包括创建、读取、写入、删除以及复制等。在Java中,这些操作通常通过`java.io`包中的类来实现。下面将详细介绍一些常用的文件...

    java csv文件读取工具类

    一个非常好用的csv文件操作工具

    Java的文件处理相关工具类

    提供java中对文件类的各种基本操作,主要包括获取文件的后缀名称,读取文件内容,写入文件内容,拷贝文件,将文件转换为二进制数组等操作,转换为Blob格式类等操作

    java文件上传下载工具类

    以下是对"java文件上传下载工具类"这一主题的详细解释。 首先,让我们了解文件上传。在Web应用中,用户可能需要上传文件,如图片、文档或视频。Java通过Servlet API提供了处理文件上传的功能。Servlet 3.0及以上...

    java常用的工具类整理28个

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...

    java工具类java工具类java工具类

    综上所述,Java工具类是Java开发中的核心组件,涵盖了数据校验、文件操作、XML处理、网络通信等多个方面。通过合理利用和自定义这些工具类,开发者可以更好地应对各种编程挑战,提升代码质量和项目效率。在实际开发...

    Java开发工具类

    - QrcodeUtils.java\防止SQL注入和XSS攻击Filter\获取文件绝对路径最后的文件夹名称\加密工具类 - CryptoUtils.java\日期工具类 - DateUtil.java\图片处理工具类 - ImageUtils.java\文件相关操作工具类——FileUtils...

    java文件对比工具

    Java文件对比工具是一种用于比较两个或多个文件之间差异的实用程序,特别适用于编程环境中检查代码间的相似性或差异。在Java开发中,这样的工具能够帮助开发者有效地定位代码修改的地方,协同工作时解决合并冲突,...

    ffmpeg java 封装工具类,音视频处理.zip

    FFmpeg 是一个强大的开源命令行工具,用于处理音频和视频文件。...通过这个"ffmpeg java 封装工具类",开发者可以更便捷地在Java应用中实现丰富的音视频处理功能,提高开发效率,同时降低对FFmpeg命令行知识的依赖。

    java验证文件真实格式和编码格式工具类

    `java验证文件真实格式和编码格式工具类` 提供的功能对于处理不同来源的文件至关重要,尤其是在处理用户上传的文件或跨平台数据交换时。通过`VerifyFileType.java` 和 `VerifyFileEncoder.java`,开发者可以确保正确...

    Java加载配置文件工具类

    这个"Java加载配置文件工具类"很可能是为了解决这个问题而创建的一个实用工具,帮助开发者更方便、高效地处理配置文件。配置文件通常以.properties或.xml格式存在,用于存储应用程序的参数、配置项等。 配置文件的...

    一些java常用的工具类

    通常,这样的库会包含一系列针对特定场景的工具类,如日期时间处理、文件操作、字符串格式化、数据校验等。例如,可能会有一个DateTimeUtils类,提供日期和时间的格式化、比较和转换方法;一个FileUtils类,用于文件...

    对于nc文件处理的工具类

    在Java环境中,处理NetCDF文件通常会用到`netcdf-java`库,它提供了API来读取、写入和操作NetCDF数据。 本节将深入探讨如何使用Java进行NetCDF文件的处理,以及`netcdf-java`库中的关键概念和方法。 1. **安装...

    Java实现的Https请求工具类

    本篇文章将深入探讨如何在Java中实现一个用于处理HTTPS请求的工具类。 首先,要实现HTTPS请求,我们需要导入Java的`java.net`和`javax.net.ssl`包,这两个包提供了处理网络连接和SSL/TLS安全协议的类。以下是一些...

    Java实现的文件读取工具类

    在这个"Java实现的文件读取工具类"中,我们可以预期它包含了一些核心的文件I/O功能以及日期和字符串之间的转换方法。下面我们将详细探讨这些知识点。 1. **文件读取与写入**: - `FileInputStream`:用于读取二...

Global site tag (gtag.js) - Google Analytics