以下是一些依据经常使用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写文件工具类的更多相关文章

  1. java中excel导入\导出工具类

    1.导入工具 package com.linrain.jcs.test; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import ...

  2. java中的Arrays这个工具类你真的会用吗

    Java源码系列三-工具类Arrays ​ 今天分享java的源码的第三弹,Arrays这个工具类的源码.因为近期在复习数据结构,了解到Arrays里面的排序算法和二分查找等的实现,收益匪浅,决定研读 ...

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

    package com.hxzy.IOSer; import java.io.File;import java.io.IOException; public class Demo03 { public ...

  4. java中io对文件操作的简单介绍

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  5. java中多种写文件方式的效率对比实验

    一.实验背景 最近在考虑一个问题:“如果快速地向文件中写入数据”,java提供了多种文件写入的方式,效率上各有异同,基本上可以分为如下三大类:字节流输出.字符流输出.内存文件映射输出.前两种又可以分为 ...

  6. java中定义一个CloneUtil 工具类

    其实所有的java对象都可以具备克隆能力,只是因为在基础类Object中被设定成了一个保留方法(protected),要想真正拥有克隆的能力, 就需要实现Cloneable接口,重写clone方法.通 ...

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

    //构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.li ...

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

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  9. java中重要的多线程工具类

    前言 之前学多线程的时候没有学习线程的同步工具类(辅助类).ps:当时觉得暂时用不上,认为是挺高深的知识点就没去管了.. 在前几天,朋友发了一篇比较好的Semaphore文章过来,然后在浏览博客的时候 ...

随机推荐

  1. (hdu step 6.3.5)Card Game Cheater(匹配的最大数:a与b打牌,问b赢a多少次)

    称号: Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...

  2. SQL_substr功能测试

    原创作品.从 "深蓝blog" 博客,欢迎转载,请务必注明转载的来源.权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/articl ...

  3. 使用autoconf和automake生成Makefile文件(转)

    Makefile好难写 曾经也总结了一篇关于Makefile的文章<make和makefile的简单学习>.但是,总结完以后,发现写Makefile真的是一件非常痛苦的事情,的确非常痛苦. ...

  4. CodeCounter代码统计

    今天一天写的,困死了 开发环境:VS2012 + WIN8-x64, MFC CSDN下载链接:http://download.csdn.net/detail/npu_wy/7405577 百度云下载 ...

  5. 《TCP/IP作品详细解释2:达到》注意事项--IP地址

    1.接口和地址 如下面的图全部本文中讨论的接口和地址的结构看一个示例配置: 上图中显示了我们三个接口样例:以太网接口,SLIP接口和环回接口. 它们都有一个链路层地址作为地址列表中的第一个结点. 显示 ...

  6. 古老server源代码迁移到新server

    因为老vsts资源server不久,准备存档,现在在旧的需要server该代码仍然在使用的所有迁移到新的vstsserver在. 因此,我们需要迁移所有需要也许是习惯了新的代码vsts在之上.代码的迁 ...

  7. Android开发学习总结(五)——Android应用目录结构分析(转)

    一.手动创建android项目 手动创建一个Android项目,命名为HelloWorld,命令如下: android create project -n HelloWorld -t 1 -p E:/ ...

  8. Calendar计算日期

    一.周六三月进去.星期天 Calendar calendar=Calendar.getInstance();//当前日期 Calendar calendar2=Calendar.getInstance ...

  9. hdu3037Saving Beans

    Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  10. 2014辽宁ACM省赛 Prime Factors

    问题 L: Prime Factors 时间限制: 1 Sec  内存限制: 128 MB [提交][状态][论坛] 题目描写叙述 I'll give you a number , please te ...