java文件处理工具类

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.BufferedReader;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.OutputStream;

import java.io.RandomAccessFile;

import java.io.Reader;

import java.util.ArrayList;

import java.util.List;

/**

* java文件处理工具类

*

* @author lay at 2014年8月8日11:30:38

*

* @version 1.0

*/

public class FileUtil {

/**

* 复制文件

*

* @param srcPath

*            源文件

* @param desPath

*            目标文件

* @return boolean 是否复制成功

*/

public static boolean copyFile(String srcPath, String desPath) {

FileInputStream is = null;

OutputStream os = null;

BufferedInputStream bufInput = null;

BufferedOutputStream bufOnput = null;

File file = new File(desPath);

if (!file.getParentFile().exists()) {

file.getParentFile().mkdirs();

}

if (file.exists()) {

file = null;

return false;

}

if (!new File(srcPath).exists()) {

return false;

}

try {

is = new FileInputStream(srcPath);

os = new FileOutputStream(desPath);

bufInput = new BufferedInputStream(is);

bufOnput = new BufferedOutputStream(os);

int read = bufInput.read();

while (read != -1) {

bufOnput.write(read);

read = bufInput.read();

}

bufOnput.flush();

return true;

} catch (IOException e) {

return false;

} finally {

try {

if (bufInput != null) {

bufInput.close();

bufInput = null;

}

} catch (Exception e) {

}

try {

if (bufOnput != null) {

bufOnput.close();

bufOnput = null;

}

} catch (Exception e) {

}

try {

if (os != null) {

os.close();

os.close();

}

} catch (Exception e) {

}

try {

if (is != null) {

is.close();

is.close();

}

} catch (Exception e) {

}

}

}

/**

* 以对象流将对象写入文件

*

* @param filePath

* @param obj

*/

public static void writeObject(String filePath, Object obj) {

OutputStream os = null;

ObjectOutputStream oos = null;

File file = new File(filePath);

if (!file.getParentFile().exists()) {

file.getParentFile().mkdirs();

}

try {

os = new FileOutputStream(filePath);

oos = new ObjectOutputStream(os);

oos.writeObject(obj);

oos.flush();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (oos != null) {

oos.close();

oos = null;

}

} catch (Exception e) {

e.printStackTrace();

}

try {

if (os != null) {

os.close();

os = null;

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

/**

* 以对象流从文件中读取对象

*

* @param filePath

* @return

*/

public static Object readObject(String filePath) {

Object obj = null;

FileInputStream is = null;

ObjectInputStream ois = null;

try {

is = new FileInputStream(filePath);

ois = new ObjectInputStream(is);

obj = ois.readObject();

} catch (Exception e) {

} finally {

try {

if (ois != null) {

ois.close();

}

} catch (IOException e) {

}

try {

if (is != null) {

is.close();

}

} catch (IOException e) {

}

}

return obj;

}

/**

* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

*

* @param fileName

*            文件的名

* @return

*/

public static byte[] readFileByBytes(String fileName) {

InputStream in = null;

byte[] b = null;

try {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] tempbytes = new byte[1024];

int len = 0;

in = new FileInputStream(fileName);

while ((len = in.read(tempbytes)) != -1) {

baos.write(tempbytes, 0, len);

}

byte[] temp = baos.toByteArray();

System.arraycopy(temp, 0, b, 0, temp.length);

baos = null;

temp = null;

} catch (Exception e1) {

e1.printStackTrace();

} finally {

if (in != null) {

try {

in.close();

} catch (IOException e1) {

}

}

}

return b;

}

/**

* 以字符为单位读取文件,常用于读文本,数字等类型的文件

*

* @param fileName

*            文件名

* @return

*/

public static char[] readFileByChars(String fileName) {

File file = new File(fileName);

Reader reader = null;

char[] ch = null;

try {

reader = new InputStreamReader(new FileInputStream(file));

List<Character> list = new ArrayList<Character>();

int tempchar;

while ((tempchar = reader.read()) != -1) {

list.add((char) tempchar);

}

reader.close();

ch = new char[list.size()];

for (int i = 0; i < list.size(); i++) {

ch[i] = list.get(i);

}

} catch (Exception e) {

e.printStackTrace();

}

return ch;

}

/**

* 以行为单位读取文件,常用于读面向行的格式化文件

*

* @param fileName

*            文件名

* @return

*/

public static String[] readFileByLines(String fileName) {

File file = new File(fileName);

BufferedReader reader = null;

String[] strs = null;

try {

List<String> list = new ArrayList<String>();

reader = new BufferedReader(new FileReader(file));

String tempString = null;

while ((tempString = reader.readLine()) != null) {

list.add(tempString);

}

reader.close();

strs = new String[list.size()];

strs = list.toArray(strs);

list = null;

} catch (IOException e) {

e.printStackTrace();

} finally {

if (reader != null) {

try {

reader.close();

} catch (IOException e1) {

}

}

}

return strs;

}

/**

* 随机读取文件内容

*

* @param fileName

*            文件名

*/

public static void readFileByRandomAccess(String fileName) {

RandomAccessFile randomFile = null;

try {

// 打开一个随机访问文件流,按只读方式

randomFile = new RandomAccessFile(fileName, "r");

// 文件长度,字节数

long fileLength = randomFile.length();

// 读文件的起始位置

int beginIndex = (fileLength > 4) ? 4 : 0;

// 将读文件的开始位置移到beginIndex位置。

randomFile.seek(beginIndex);

byte[] bytes = new byte[10];

int byteread = 0;

// 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。

// 将一次读取的字节数赋给byteread

while ((byteread = randomFile.read(bytes)) != -1) {

System.out.write(bytes, 0, byteread);

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (randomFile != null) {

try {

randomFile.close();

} catch (IOException e1) {

}

}

}

}

/**

* A方法追加文件:使用RandomAccessFile

*

* @param fileName

*            文件名

* @param content

*            追加的内容

*/

public static void appendMethodA(String fileName, String content) {

try {

// 打开一个随机访问文件流,按读写方式

RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");

// 文件长度,字节数

long fileLength = randomFile.length();

// 将写文件指针移到文件尾。

randomFile.seek(fileLength);

randomFile.writeBytes(content);

randomFile.close();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* B方法追加文件:使用FileWriter

*

* @param fileName

*            文件名

* @param content

*            追加的内容

*/

public static void appendMethodB(String fileName, String content) {

try {

// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件

FileWriter writer = new FileWriter(fileName, true);

writer.write(content);

writer.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

java文件处理工具类

时间: 2024-10-12 06:40:22

java文件处理工具类的相关文章

Java文件类型工具类

package *; import java.util.HashMap; import java.util.Map; /** * <p> * <b>FileTypeEnum2</b> is 文件类型(扩展名)对比类 * </p> * * @since 2019年1月5日15:53:57 * @author Liuyc * @version $Id: codetemplates.xml 1145 2019年1月5日 Liuyc $ */ public clas

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ?Copyright 蕃薯耀 2017年9月13日 http://www.cnblogs.com/fanshuyao/ 直接上代码: import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.ref

Java 压缩文件夹工具类(包含解压)

依赖jar <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.18</version> </dependency> CompressUtils.java package utils; import java.io.BufferedInputStream;

list集合、txt文件对比的工具类和文件读写工具类

工作上经常会遇到处理大数据的问题,下面两个工具类,是在处理大数据时编写的:推荐的是使用map的方式处理两个list数据,如果遇到list相当大数据这个方法就起到了作用,当时处理了两个十万级的list,使用改方法的变种搞定. 1.txt文件.list集合比较工具 <span style="font-family:KaiTi_GB2312;font-size:18px;">package com.hudong.util.other; import java.util.Colle

文件夹工具类 - FolderUtils

文件夹工具类,提供创建完整路径的方法. 源码如下:(点击下载 -FolderUtils.java .commons-io-2.4.jar ) import java.io.File; import org.apache.commons.io.FilenameUtils; /** * 文件夹工具 * */ public class FolderUtils { /** * 创建完整路径 * * @param path * a {@link java.lang.String} object. */ p

读取资源文件的工具类.

import java.util.ResourceBundle; import org.springframework.util.NumberUtils; /**读取资源文件的工具类. */ public class ConfigUtil { /**读取资源文件中的键值信息. * 例如有键值名为a,其对应的值为整数类型,那么方法即为:readConfigForObject("a",Integer.class). * @param keyName 键值名 * @param require

[精品] 收集的27个java开发常用工具类.基本满足开发需求

原文:[精品] 收集的27个java开发常用工具类.基本满足开发需求 源代码下载地址:http://www.zuidaima.com/share/1596028005993472.htm 最近从网上收集的java开发常用的工具类,分享给大家.基本满足开发需求.推荐给热爱最代码以及java的牛牛们.   每个类都有注释的,欢迎大家可以下载使用. 字符编码:CharTools, base64:Base64 *.java Md5加密:  MD5*.java 上传:*Uploader* 生成缩略图类:T

Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类

Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类   =========================== ?Copyright 蕃薯耀 2017年9月25日 http://www.cnblogs.com/fanshuyao/ 一.问题描述 很多对外网站的某些内容都需要过滤敏感词,避免政治与色@情上的问题. 二.解决方案 使用词库进行匹配过滤成 * (星号) Java 敏感词工具类及敏感词词库见附件. 1.下载后,有几个类,主要为WordFilter 这个工具类,使用方法如下

Android之文件读写工具类

本工具类永久维护,永久更新,如果各位读者发现有bug或者不合理之处,欢迎指正,博主将第一时间改正. 以下是主要内容,本类主要功能有: 1.创建文件功能: 2.向文件中写入字节数组: 3.向文件中写入字符串: 4.从文件中读取字节数组: 5.从文件中读取字符串: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; /** * 文件读写工具类 * * @author bear *