- 浏览: 80758 次
- 性别:
- 来自: 上海
文章分类
最新评论
package com.jinqiao.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class FileUtil {
/**
* 创建文件夹
*
* @param path
* 目录
*/
public void createDir(String path) {
File dir = new File(path);
if (!dir.exists()) {
dir.mkdir();
System.out.println("创建文件夹成功!");
}
}
/**
* 递归删除文件夹 要利用File类的delete()方法删除目录时, 必须保证该目录下没有文件或者子目录,否则删除失败,
* 因此在实际应用中,我们要删除目录, 必须利用递归删除该目录下的所有子目录和文件, 然后再删除该目录。
*
* @param path
*/
public void delDir(String path) {
File dir = new File(path);
if (dir.exists()) {
File[] tmp = dir.listFiles();
for (int i = 0; i < tmp.length; i++) {
if (tmp[i].isDirectory()) {
delDir(path + "/" + tmp[i].getName());
} else {
tmp[i].delete();
}
}
dir.delete();
}
}
/*
* 转移文件目录不等同于复制文件,复制文件是复制后两个目录都存在该文件, 而转移文件目录则是转移后,只有新目录中存在该文件
*/
/**
* 转移文件目录
*
* @param filename
* 文件名
* @param oldpath
* 旧目录
* @param newpath
* 新目录
* @param cover
* 若新目录下存在和转移文件具有相同文件名的文件时,是否覆盖新目录下文件, cover=true将会覆盖原文件,否则不操作
*/
public void changeDirectory(String filename, String oldpath,
String newpath, boolean cover) {
if (!oldpath.equals(newpath)) {
File oldfile = new File(oldpath + "/" + filename);
File newfile = new File(newpath + "/" + filename);
if (newfile.exists()) {// 若在待转移目录下,已经存在待转移文件
if (cover)// 覆盖
oldfile.renameTo(newfile);
else
System.out.println("在新目录下已经存在:" + filename);
} else {
oldfile.renameTo(newfile);
}
}
}
/**
* 创建新文件
*
* @param path
* 目录
* @param filename
* 文件名
* @throws IOException
*/
public void createFile(String path, String filename) throws IOException {
File file = new File(path + "/" + filename);
if (!file.exists()) {
file.createNewFile();
System.out.println("创建文件成功!");
}
}
/*
* 利用BufferedWriter写入文件内容
*
* 利用Buffer操作IO速度会稍微快一点
*/
public void writeFile(String filename) {
File file = new File(filename);
try {
if (!file.exists())
file.createNewFile();
FileWriter fw = new FileWriter(file, true);// 传入true表示如果该文件存在,则将新内容添加到文件末尾
BufferedWriter bw = new BufferedWriter(fw);
for (int i = 0; i < 10; i++)
bw.write("这是第" + (i + 1) + "行,应该没错哈 ");
// 关闭
bw.close();
bw = null;
fw.close();
fw = null;
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读文件 利用BufferedReader读取在IO操作,利用BufferedReader和BufferedWriter效率会更高一点
*
* @param path
* @return
* @throws IOException
*/
public String ReadFile(String path) throws IOException {
File file = new File(path);
if (!file.exists() || file.isDirectory())
throw new FileNotFoundException();
BufferedReader br = new BufferedReader(new FileReader(file));
String temp = null;
StringBuffer sb = new StringBuffer();
temp = br.readLine();
while (temp != null) {
sb.append(temp + " ");
temp = br.readLine();
}
return sb.toString();
}
/**
* 文件重命名--如果重命名的目标文件已经存在,则不会进行任何操作
*
* @param path
* 文件目录
* @param oldname
* 原来的文件名
* @param newname
* 新文件名
*/
public void renameFile(String path, String oldname, String newname) {
if (!oldname.equals(newname)) {// 新的文件名和以前文件名不同时,才有必要进行重命名
File oldfile = new File(path + "/" + oldname);
File newfile = new File(path + "/" + newname);
if (newfile.exists())// 若在该目录下已经有一个文件和新文件名相同,则不允许重命名
System.out.println(newname + "已经存在!");
else {
oldfile.renameTo(newfile);
}
}
}
/**
* 以文件流的方式复制文件 支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式
*
* @param src
* 文件源目录
* @param dest
* 文件目的目录
* @throws IOException
*/
public void copyFile(String src, String dest) throws IOException {
FileInputStream in = new FileInputStream(src);
File file = new File(dest);
if (!file.exists())
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
int c;
byte buffer[] = new byte[1024];
while ((c = in.read(buffer)) != -1) {
for (int i = 0; i < c; i++)
out.write(buffer[i]);
}
System.out.println("文件拷贝完毕!");
in.close();
out.close();
}
/**
* 删除文件
*
* @param path
* 目录
* @param filename
* 文件名
*/
public void delFile(String path, String filename) {
File file = new File(path + "/" + filename);
if (file.exists() && file.isFile())
file.delete();
}
public String readSysFile(String path,String charsetName1,String charsetName2){
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
String str = "";
try {
InputStream is = new FileInputStream(FileUtil.class.getResource(path).toString().substring(6));
br = new BufferedReader(new InputStreamReader(is));
String temp = null;
temp = br.readLine();
while (temp != null) {
sb.append(temp + "\n");
temp = br.readLine();
}
str = sb.toString();
//System.out.println(sb.toString());
if(charsetName1!=null && charsetName2!=null && charsetName1.trim().length()>0 && charsetName1.trim().length()>0){
//str = new String(str.getBytes("GBK"),"UTF-8");
str = new String(str.getBytes(charsetName1.trim()),charsetName2.trim());
}
is.close();
br.close();
sb.setLength(0);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
public static void main(String[] arg){
String str;
try {
str = FileUtil.class.newInstance().readSysFile("/com/jinqiao/tag/file/orgLinkage.pro","","");
System.out.println(str);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class FileUtil {
/**
* 创建文件夹
*
* @param path
* 目录
*/
public void createDir(String path) {
File dir = new File(path);
if (!dir.exists()) {
dir.mkdir();
System.out.println("创建文件夹成功!");
}
}
/**
* 递归删除文件夹 要利用File类的delete()方法删除目录时, 必须保证该目录下没有文件或者子目录,否则删除失败,
* 因此在实际应用中,我们要删除目录, 必须利用递归删除该目录下的所有子目录和文件, 然后再删除该目录。
*
* @param path
*/
public void delDir(String path) {
File dir = new File(path);
if (dir.exists()) {
File[] tmp = dir.listFiles();
for (int i = 0; i < tmp.length; i++) {
if (tmp[i].isDirectory()) {
delDir(path + "/" + tmp[i].getName());
} else {
tmp[i].delete();
}
}
dir.delete();
}
}
/*
* 转移文件目录不等同于复制文件,复制文件是复制后两个目录都存在该文件, 而转移文件目录则是转移后,只有新目录中存在该文件
*/
/**
* 转移文件目录
*
* @param filename
* 文件名
* @param oldpath
* 旧目录
* @param newpath
* 新目录
* @param cover
* 若新目录下存在和转移文件具有相同文件名的文件时,是否覆盖新目录下文件, cover=true将会覆盖原文件,否则不操作
*/
public void changeDirectory(String filename, String oldpath,
String newpath, boolean cover) {
if (!oldpath.equals(newpath)) {
File oldfile = new File(oldpath + "/" + filename);
File newfile = new File(newpath + "/" + filename);
if (newfile.exists()) {// 若在待转移目录下,已经存在待转移文件
if (cover)// 覆盖
oldfile.renameTo(newfile);
else
System.out.println("在新目录下已经存在:" + filename);
} else {
oldfile.renameTo(newfile);
}
}
}
/**
* 创建新文件
*
* @param path
* 目录
* @param filename
* 文件名
* @throws IOException
*/
public void createFile(String path, String filename) throws IOException {
File file = new File(path + "/" + filename);
if (!file.exists()) {
file.createNewFile();
System.out.println("创建文件成功!");
}
}
/*
* 利用BufferedWriter写入文件内容
*
* 利用Buffer操作IO速度会稍微快一点
*/
public void writeFile(String filename) {
File file = new File(filename);
try {
if (!file.exists())
file.createNewFile();
FileWriter fw = new FileWriter(file, true);// 传入true表示如果该文件存在,则将新内容添加到文件末尾
BufferedWriter bw = new BufferedWriter(fw);
for (int i = 0; i < 10; i++)
bw.write("这是第" + (i + 1) + "行,应该没错哈 ");
// 关闭
bw.close();
bw = null;
fw.close();
fw = null;
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读文件 利用BufferedReader读取在IO操作,利用BufferedReader和BufferedWriter效率会更高一点
*
* @param path
* @return
* @throws IOException
*/
public String ReadFile(String path) throws IOException {
File file = new File(path);
if (!file.exists() || file.isDirectory())
throw new FileNotFoundException();
BufferedReader br = new BufferedReader(new FileReader(file));
String temp = null;
StringBuffer sb = new StringBuffer();
temp = br.readLine();
while (temp != null) {
sb.append(temp + " ");
temp = br.readLine();
}
return sb.toString();
}
/**
* 文件重命名--如果重命名的目标文件已经存在,则不会进行任何操作
*
* @param path
* 文件目录
* @param oldname
* 原来的文件名
* @param newname
* 新文件名
*/
public void renameFile(String path, String oldname, String newname) {
if (!oldname.equals(newname)) {// 新的文件名和以前文件名不同时,才有必要进行重命名
File oldfile = new File(path + "/" + oldname);
File newfile = new File(path + "/" + newname);
if (newfile.exists())// 若在该目录下已经有一个文件和新文件名相同,则不允许重命名
System.out.println(newname + "已经存在!");
else {
oldfile.renameTo(newfile);
}
}
}
/**
* 以文件流的方式复制文件 支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式
*
* @param src
* 文件源目录
* @param dest
* 文件目的目录
* @throws IOException
*/
public void copyFile(String src, String dest) throws IOException {
FileInputStream in = new FileInputStream(src);
File file = new File(dest);
if (!file.exists())
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
int c;
byte buffer[] = new byte[1024];
while ((c = in.read(buffer)) != -1) {
for (int i = 0; i < c; i++)
out.write(buffer[i]);
}
System.out.println("文件拷贝完毕!");
in.close();
out.close();
}
/**
* 删除文件
*
* @param path
* 目录
* @param filename
* 文件名
*/
public void delFile(String path, String filename) {
File file = new File(path + "/" + filename);
if (file.exists() && file.isFile())
file.delete();
}
public String readSysFile(String path,String charsetName1,String charsetName2){
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
String str = "";
try {
InputStream is = new FileInputStream(FileUtil.class.getResource(path).toString().substring(6));
br = new BufferedReader(new InputStreamReader(is));
String temp = null;
temp = br.readLine();
while (temp != null) {
sb.append(temp + "\n");
temp = br.readLine();
}
str = sb.toString();
//System.out.println(sb.toString());
if(charsetName1!=null && charsetName2!=null && charsetName1.trim().length()>0 && charsetName1.trim().length()>0){
//str = new String(str.getBytes("GBK"),"UTF-8");
str = new String(str.getBytes(charsetName1.trim()),charsetName2.trim());
}
is.close();
br.close();
sb.setLength(0);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
public static void main(String[] arg){
String str;
try {
str = FileUtil.class.newInstance().readSysFile("/com/jinqiao/tag/file/orgLinkage.pro","","");
System.out.println(str);
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
发表评论
-
java ZIP压缩工具类
2015-01-28 14:35 977package com.common.util; i ... -
java ftp工具类
2015-01-28 14:33 1431package com.common.util; i ... -
java socket编程
2014-01-02 16:53 1181引用 /** * 工行实名认证处理方法 * ... -
Spring_Security_多页面登录配置教程
2011-08-08 10:13 17209本文转自百度文库:http://wenku.baidu.com ... -
从数据库中读取带换行的字符串
2011-06-01 09:25 7170数据库中的workExp(工作经历)字段是带换行或回车的字符串 ... -
向已获取的list中插入值
2011-08-08 11:23 1994public List getWfList(String id ... -
正则表达式常用验证方法
2011-05-26 15:02 1477function isDigit(s) { var patr ... -
java常用操作方法(六) 远程文件操作 RemoteFileUtil
2011-05-26 14:58 4474package com.jinqiao.util; impo ... -
java常用操作方法(五)金额 MoneyUtil
2011-05-26 14:57 2044package com.jinqiao.util; impo ... -
java常用操作方法(四)数学计算操作 MathUtil
2011-05-26 14:55 8877package com.jinqiao.util; impo ... -
java常用操作方法(三)字符串工具类 StringUtil
2011-05-26 14:52 1843package com.jinqiao.util; impo ... -
java常用操作方法(一)日期工具类 DateUtil
2011-05-26 14:46 3347/* * Created on 2011-5-26 * ...
相关推荐
import java.io.*; /** * FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /**...
java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...
FileUtil(文件操作工具类)
一个常用的Java文件操作类FileUtil.java源代码,类中的所有方法都是静态方法,不需要生成此类的实例,这些Java文件操作类主要有修改文件的最后访问时间、判断指定的文件是否存在、创建指定的目录、清空指定目录中的...
NULL 博文链接:https://chong0660.iteye.com/blog/2367232
java.io.File myFilePath = new java.io.File(filePath); if (!myFilePath.exists()) { myFilePath.mkdir(); } } catch (Exception e) { System.out.println("新建目录操作出错"); e.printStackTrace...
java线程常用操作方法笔记,每一点都是经过本人精心筛选出来的重点!
Java文件操作封装类
Java常用类 Math类 String类 StringBuffer类 StringTokenizer类 包装类 集合操作 集合 列表(List) 映射(Map) Collections类 枚举和迭代
java 文件操作类 20多个实用方法,操作文件的好帮手。 JAVA自定义Util大放送-集成j2ee精英团队十年编程之精华
java文件操作工具类是java中针对文件操作的一个工具类,可以方便的读取,下载,上传文件等操作,希望可以帮到大家。
# java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...
封装了包括所有常用的文件操作方法如:读文件,写文件,查看文件夹大小,树状展示文件夹中文件目录,拷贝文件,复制文件,删除文件,创建文件,递归删除文件夹中文件,获取指定文件属性
java代码-使用java解决文件相关操作——FileUtil的源代码 ——学习参考资料:仅用于个人学习使用!
常用CS类库(字符串操作类,数据库操作类,邮件发送类,正则类,对象转换类,文件操作类,常用JS操作类,Office操作类等等)
java视频教程 Java文件操作 JavaFile
使用Qt框架编写的各种文件操作库,支持:csv、dbf、excel、ini、json、xml文件。
提供了很丰富的java工具类,包括字符串、数字、日期、文件、图像、编码解码、校验工具、文档操作等。 主要分为以下几种: - 1.通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密...
该类主要对常见的一些文件操作进行了封装,如读写文件(UTF-8)、复制文件、删除文件,创建目录等