设为首页 加入收藏

TOP

Java中IO写文件工具类(一)
2014-11-23 22:10:03 来源: 作者: 【 】 浏览:39
Tags:Java 文件 工具

下面是一些根据常用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 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 returnValue = new ArrayList();
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 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 set = new HashSet();
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 returnValue = new ArrayList(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 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 fileContent, boolean flag) throws IOException {

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java日期工具类 下一篇Lucene给文本索引和搜索功能的应用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: