java中IO写文件工具类

下面是一些根据常用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂。
其中jodd中提供的JavaUtil类中提供的方法足够我们使用,里面的方法写的非常简练,例如append,read等方法,封装更好,更符合面向对象,
这里面我写的一些方法可多都是模仿jodd,从里面进行抽取出来的。
	/**
	 * 获取路径文件夹下的所有文件
	 * @param path
	 * @return
	 */
	public static File[] getKeywordFiles(String path) {
		File dir = new File(path);
		if (!dir.exists())
			return null;
		File[] fs = dir.listFiles();
		return fs;
	}
		/**
	 * 删除文件夹 param folderPath 文件夹完整绝对路径
	 */
	private static void delFolder(String folderPath) {
		try {
			delAllFile(folderPath); // 删除完里面所有内容
			String filePath = folderPath;
			filePath = filePath.toString();
			java.io.File myFilePath = new java.io.File(filePath);
			myFilePath.delete(); // 删除空文件夹
		} catch (Exception e) {
			log.error(e);
		}
	}

	/**
	 * 读取一个文件
	 * @param filePathAndName
	 * @return
	 * @throws IOException
	 */
	public static List<String> readFile(String filePathAndName)
			throws IOException {
		FileInputStream fis = new FileInputStream(filePathAndName);
		InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
		BufferedReader br = new BufferedReader(isr);
		LineNumberReader lnr = new LineNumberReader(br);

		List<String> returnValue = new ArrayList<String>();
		int cnt = 0;
		while (true) {
			cnt++;
			String tempStr = lnr.readLine();
			if (tempStr == null)
				break;
			if (tempStr.length() < 2)
				continue;
			returnValue.add(tempStr);
		}
		lnr.close();
		br.close();
		isr.close();
		fis.close();
		return returnValue;
	}

	/**
	 * 读取一个文件,并排重后返回

	 */
	public static List<String> readFileNoDup(String filePathAndName)
			throws IOException {
		FileInputStream fis = new FileInputStream(filePathAndName);
		InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
		BufferedReader br = new BufferedReader(isr);
		LineNumberReader lnr = new LineNumberReader(br);

		Set<String> set = new HashSet<String>();
		while (true) {
			String tempStr = lnr.readLine();
			if (tempStr == null)
				break;
			if (tempStr.length() < 2)
				continue;
			set.add(tempStr.trim());
		}
		lnr.close();
		br.close();
		isr.close();
		fis.close();
		List<String> returnValue = new ArrayList<String>(set.size());
		returnValue.addAll(set);
		return returnValue;
	}

	/**
	 * 添加内容到指定文件 如果该文件不存在,则创建并添加内容 如果该文件已存在,则添加内容到已有内容最后
	 * flag为true,则向现有文件中添加内容,否则覆盖原有内容

	 */
	public static void writeFile(String filePathAndName, String fileContent,
			boolean flag) throws IOException {
		if (null == fileContent || fileContent.length() < 1)
			return;
		File file = new File(filePathAndName);

		if (!file.exists()) {
			file.createNewFile();
		}
		FileOutputStream fos = new FileOutputStream(filePathAndName, flag);
		OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8");
		osw.write(fileContent + "\r\n");
		osw.flush();
		osw.close();
	}

	/**
	 * 添加内容到指定文件 如果该文件不存在,则创建并添加内容 如果该文件已存在,则添加内容到已有内容最后
	 * flag为true,则向现有文件中添加内容,否则覆盖原有内容

	 */
	public static void writeFile(String filePathAndName,
			List<String> fileContent, boolean flag) throws IOException {
		File file = new File(filePathAndName);

		if (!file.exists()) {
			file.createNewFile();
		}
		FileOutputStream fos = new FileOutputStream(filePathAndName, flag);
		OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8");
		for (String temp : fileContent)
			osw.write(temp + "\r\n");
		osw.flush();
		osw.close();
	}

	/**
	 * 添加内容到指定文件 如果该文件不存在,则创建并添加内容 如果该文件已存在,则添加内容到已有内容最后
	 * flag为true,则向现有文件中添加内容,否则覆盖原有内容

	 */
	public static void writeFile(String filePath,String filename,
			List<String> fileContent, boolean flag) throws IOException {
		File file = new File(filePath);

		if(!file.exists()){
			boolean tempFlag = file.mkdirs();
			if(!tempFlag){
				log.error("文件夹"+filePath+"创建失败");
				return;
			}
		}

		file = new File(filePath,filename);

		if (!file.exists()) {
			file.createNewFile();
		}
		FileOutputStream fos = new FileOutputStream(filePath+filename, flag);
		OutputStreamWriter osw = new OutputStreamWriter(fos, "utf-8");
		for (String temp : fileContent)
			osw.write(temp + "\r\n");
		osw.flush();
		osw.close();
	}

java中IO写文件工具类,布布扣,bubuko.com

时间: 2024-10-19 01:01:52

java中IO写文件工具类的相关文章

Java中Io流操作-File类的常用操作-创建文件,创建文件夹

package com.hxzy.IOSer; import java.io.File;import java.io.IOException; public class Demo03 { public static void main(String[] args)throws Exception{ Gu_1(); Gu_2(); } /* * 2.File对象调用file.mkdirs() * 可以创建多层文件夹 * 这个方法是创建文件夹的 返回的同样是布尔值 * 同样需要File类的构造方法

java中excel导入\导出工具类

1.导入工具 1 package com.linrain.jcs.test; 2 3 4 import jxl.Cell; 5 import jxl.Sheet; 6 import jxl.Workbook; 7 import jxl.write.Label; 8 import jxl.write.WritableSheet; 9 10 import java.io.InputStream; 11 import java.lang.reflect.Field; 12 import java.te

【转】Java压缩和解压文件工具类ZipUtil

特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ 1 package com.utility.zip; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File; 6 import jav

Java中IO流文件读取、写入和复制

//构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.list(); //获取目录下的文件File[] files=f.listFiles();  1.Java怎么读取文件 package com.yyb.file; import java.io.File; import java.io.FileInputStream; import java.io.In

JAVA中使用MD5加密工具类实现对数据的加密处理

1.MD5工具类 package com.ssm.util; import java.security.MessageDigest; public class MD5Util { //将字节数组转成十六进制字符串 private static String byteArrayToHexString(byte b[]) { StringBuffer resultSb = new StringBuffer(); for (int i = 0; i < b.length; i++) resultSb.

java中io创建文件和读取文件

简单了解IO流:https://www.cnblogs.com/weibanggang/p/10034325.html package com.wbg.iodemo1128; import java.io.*; public class OutputStreamDemo { public static void main(String[] args) throws IOException { reader(); } //输入字节流inputStream static void inputStre

Java中Date类型的工具类

package com.mytripod.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author Mytripod * @create 2018-09-30 21:25 */ public class DateUtil { public static String DatePattern

java中常用的并发工具类

· 1. 等待多线程完成的CountDownLatch 构造函数接收一个int类型的参数作为计数器,如果想等待N个点,就传入N.当调用CountDownLatch的countDown方法时,N就会减一,直至减为零.使用await方法等待,当N的值变为零,执行await的线程继续执行. public class CountDownTest { static CountDownLatch c = new CountDownLatch(2); static ExecutorService pool =

自动扫描FTP文件工具类 ScanFtp.java

package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** * 自动扫描FTP文件工具类 * 需要定时执行 */ public class S