- 浏览: 81595 次
- 性别:
- 来自: 上海
文章分类
最新评论
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 1022package com.common.util; i ... -
java ftp工具类
2015-01-28 14:33 1472package com.common.util; i ... -
java socket编程
2014-01-02 16:53 1219引用 /** * 工行实名认证处理方法 * ... -
Spring_Security_多页面登录配置教程
2011-08-08 10:13 17271本文转自百度文库:http://wenku.baidu.com ... -
从数据库中读取带换行的字符串
2011-06-01 09:25 7209数据库中的workExp(工作经历)字段是带换行或回车的字符串 ... -
向已获取的list中插入值
2011-08-08 11:23 2026public List getWfList(String id ... -
正则表达式常用验证方法
2011-05-26 15:02 1515function isDigit(s) { var patr ... -
java常用操作方法(六) 远程文件操作 RemoteFileUtil
2011-05-26 14:58 4535package com.jinqiao.util; impo ... -
java常用操作方法(五)金额 MoneyUtil
2011-05-26 14:57 2094package com.jinqiao.util; impo ... -
java常用操作方法(四)数学计算操作 MathUtil
2011-05-26 14:55 8904package com.jinqiao.util; impo ... -
java常用操作方法(三)字符串工具类 StringUtil
2011-05-26 14:52 1883package com.jinqiao.util; impo ... -
java常用操作方法(一)日期工具类 DateUtil
2011-05-26 14:46 3408/* * Created on 2011-5-26 * ...
相关推荐
在提供的`FileUtil.java`文件中,可能包含了上述某些或全部的文件操作方法,具体实现需要查看源码才能得知。对于实际项目开发,编写一个`FileUtil`工具类是非常常见的做法,这样可以将文件操作封装起来,便于代码的...
测试类`TestClass.java`通常会包含一系列测试用例,确保`FileUtil`类的每个方法都能正确执行其预期的功能,例如通过JUnit或TestNG框架编写单元测试,测试文件的创建、读取、写入、删除等操作,并验证结果的正确性。...
`FileUtil.java`源码中,这些方法通常会使用Java的`java.io`包提供的基本文件操作类,如`File`, `FileInputStream`, `FileOutputStream`, `BufferedReader`, `BufferedWriter`等。通过封装这些基本操作,`FileUtil`...
一个常用的Java文件操作类FileUtil.java源代码,类中的所有方法都是静态方法,不需要生成此类的实例,这些Java文件操作类主要有修改文件的最后访问时间、判断指定的文件是否存在、创建指定的目录、清空指定目录中的...
3. **文件操作方法** - `createNewFile()`:创建一个新的空文件。如果文件已存在,此方法将返回`false`。 - `delete()`:删除文件或目录。如果目标是目录,它必须为空才能删除。 - `mkdir()`:创建单级目录。注意...
这个类通常是为了提供更方便的文件操作方法,比如上述的复制、删除等。这些方法可能是静态的,可以直接通过类名调用,如`FileUtils.copyDirectory()`。 总的来说,Java的`File`类提供了丰富的文件和目录操作接口,...
Java文件操作工具类fileUtil实例是一个提供了多种文件操作方法的工具类,包括文件读取、增加、删除、修改、复制等操作。该工具类可以帮助开发者快速实现文件操作功能,提高开发效率。 1. 读取文件内容 FileUtil类...
"FileUtil"是一个Java工具类库,用于处理与文件操作相关的任务。在Java开发中,文件操作是一项常见的任务,例如读取、写入、移动、复制文件等。FileUtil类通常封装了这些基本操作,提供了更简洁、易用的API,以减少...
接着,`FileUtil`工具类主要用于文件和目录的操作,如读取、写入、创建、删除、复制等。例如,`readFileToString()`可以将整个文件内容读取为一个字符串,`writeStringToFile()`则可以将字符串写入到文件。此外,`...
在Java编程中,工具类(Util Class)是包含各种实用函数的静态类,它们提供了一种简化常见任务的方法。在给定的`UtilClass`中,我们有五个主要的工具类:`StringUtil`、`FileUtil`、`ConnectDB`、`DateUtil`和`...
本篇将详细讲解标题为"java常用工具类"的几个关键组件,如JSONUtil、StringUtil、FileUtil等,并深入探讨它们的功能和使用场景。 首先,JSONUtil是处理JSON(JavaScript Object Notation)数据的工具类。JSON是一种...
在博文链接中提到的"FileUtil4.txt"可能是一个工具类,用于处理文件操作。FileUtil通常包含了读取、写入、复制、移动、删除文件等实用方法。例如,它可能封装了`java.io.File`、`java.nio`等类的操作,提供更简洁的...
FileUtil工具类主要处理文件和目录的操作,简化了Java的I/O操作。它可能包含如读取文件内容、写入文件、创建或删除文件/目录等方法。例如,`readFileToString`可以用来读取整个文件并返回一个字符串,而`...
文件工具类FileUtil是一个专门为Android开发提供帮助的实用类,它能够简化对文件的操作,使得开发者能更专注于业务逻辑,而不必重复编写文件操作的代码。下面详细介绍FileUtil中包含的一些关键功能点: 1. 读取raw...
该工具类专门转对于Java中的数据文件的移动,复制,拷贝等方法,为开发者提供一系列的便捷的操作方法!极大的方便开发者开发!!
8. **文件操作工具类(FileUtil)**:提供文件的创建、删除、移动、复制等操作,简化文件操作。例如`createFileIfNotExists()`用于创建文件(如果文件不存在),`deleteFile()`用于删除文件。 9. **网络工具类...
总结,这个Java项目提供了一个工具类FileUtil,用于简化文件操作,如写入文件。TestSettings类则确保FileUtil的功能在不同情况下都能正确工作。学习和理解这些代码可以帮助提升Java开发中的文件操作能力。
4. **文件操作**:`FileUtil.java`提供了对文件的基本操作,如创建、读取、写入、删除、复制、移动等,这些方法是文件系统交互的核心。 5. **MD5加密**:`Md5.java`包含MD5哈希函数,MD5是一种广泛用于密码存储和...
本篇文章将详细讲解如何通过Java操作FastDFS来上传文件,并封装成一个工具类。 首先,你需要在项目中引入FastDFS的Java客户端库,通常可以通过Maven或Gradle来添加依赖。在Maven的pom.xml文件中,可以添加如下依赖...