JAVA-文件操作工具类

文件操作工具类

/********************************************
 * 文件操作工具类
 *
 * @author p.ww
 *********************************************/

import java.io.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import org.apache.commons.compress.archivers.ArchiveInputStream;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class FileUtils {
	
	/**
	 * 读文件
	 *
	 * @param filePath 读取文件路径
	 * @return 返回字符串
	 */
	public static String readTxtFile(String filePath) {
		File file = new File(filePath);
		if (!file.exists()) {
			return null;
		}
		StringBuffer stringBuffer = null;
		BufferedReader bufferedReader = null;
		try {
			bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "GBK"));
			stringBuffer = new StringBuffer();
			String line = null;
			while ((line = bufferedReader.readLine()) != null) {
				if ("\r".equals(line)) {
					continue;
				}
				stringBuffer.append(line).append("\n");
			}
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		} finally {
			closeBufferedReader(bufferedReader);
		}
		return stringBuffer.toString();
	}

	/**
	 * 关闭文件流
	 *
	 * @author Lius
	 * @date 2018/10/26 16:32
	 */
	public static void closeBufferedReader(BufferedReader bufferedReader) {
		if (bufferedReader != null) {
			try {
				bufferedReader.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 写文件
	 * @param fileName
	 * @param content
	 * @return
	 */
	public static int writeFile(String fileName, byte[] content) {
		File file = new File(fileName);
		File fileparent = file.getParentFile();
		if (!fileparent.exists()) {
			System.out.println("文件夹不存在!");
//			fileparent.mkdirs();
		}
		FileOutputStream os = null;
		try {
			os = new FileOutputStream(fileName);
			os.write(content);
			os.flush();

		} catch (Exception e) {
			System.out.println("写入文件异常:" + e.getMessage());
			return -1;
		} finally {
			try {
				if (null != os)
					os.close();
			} catch (IOException e) {
			}
		}
		os = null;
		return 0;
	}

	/**
	 * 获取windows/linux的项目根目录
	 * @author p.ww
	 * @return
	 */
	public static String getConTextPath(){
		String fileUrl = Thread.currentThread().getContextClassLoader().getResource("").getPath();
		if("usr".equals(fileUrl.substring(1,4))){
			fileUrl = (fileUrl.substring(0,fileUrl.length()-16));//linux
		}else{
			fileUrl = (fileUrl.substring(1,fileUrl.length()-16));//windows
		}
		return fileUrl;
	}
	
}
package com.hexiang.utils; import java.io.*; /** * FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /** * Read content from local file. FIXME How to judge UTF-8 and GBK, the * correct code should be: FileReader fr = new FileReader(new * InputStreamReader(fileName, "ENCODING")); Might let the user select the * encoding would be a better idea. While reading UTF-8 files, the content * is bad when saved out. * * @param fileName - * local file name to read * @return * @throws Exception */ public static String readFileAsString(String fileName) throws Exception { String content = new String(readFileBinary(fileName)); return content; } /** * 读取文件并返回为给定字符集的字符串. * @param fileName * @param encoding * @return * @throws Exception */ public static String readFileAsString(String fileName, String encoding) throws Exception { String content = new String(readFileBinary(fileName), encoding); return content; } /** * 读取文件并返回为给定字符集的字符串. * @param fileName * @param encoding * @return * @throws Exception */ public static String readFileAsString(InputStream in) throws Exception { String content = new String(readFileBinary(in)); return content; } /** * Read content from local file to binary byte array. * * @param fileName - * local file name to read * @return * @throws Exception */ public static byte[] readFileBinary(String fileName) throws Exception { FileInputStream fin = new FileInputStream(fileName); return readFileBinary(fin); } /** * 从输入流读取数据为二进制字节数组. * @param streamIn * @return * @throws IOException */ public static byte[] readFileBinary(InputStream streamIn) throws IOException { BufferedInputStream in = new BufferedInputStream(streamIn); ByteArrayOutputStream out = new ByteArrayOutputStream(10240); int len; while ((len
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值