package org.archer.test;
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编程中,`FileUtil`通常是一个自定义的工具类,用于封装常见的文件操作,以便在项目中方便地处理文件。这个类可以提供一系列静态方法,帮助开发者执行读写文件、创建、删除、移动、复制文件等任务,极大地提高...
在Java编程语言中,`FileUtil`类通常是由开发者自定义的一个工具类,用于封装对文件和目录的操作,以提供更便捷、安全的文件处理功能。这个类可能会包含各种静态方法,用来创建、读取、写入、删除、移动、复制文件...
在给出的标题和描述中,我们涉及了四个关键的工具类:Base64Util、FileUtil、GsonUtils和HttpUtil。这些工具类分别用于Base64编码解码、文件操作、JSON数据处理以及HTTP请求。下面将详细介绍这四个工具类的主要功能...
在这个案例中,我们关注的是两个核心组件:`ExceptionBean`和`FileUtil`。这两个组件分别用于优雅地处理异常和简化文件操作。 首先,让我们深入理解`ExceptionBean`。在Java编程中,异常处理是必不可少的一部分。`...
* FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /** * Read content from ...
"FileUtil"是一个基于Qt框架的库,专门用于处理各种类型的文件,包括CSV、DBF、Excel、INI、JSON和XML等。下面将详细介绍这些文件格式以及如何使用Qt进行操作。 1. CSV(Comma Separated Values)文件: CSV是一种...
这里提到的"ArrayUtil+DateUtil+FileUtil+ReguUtil+StringUtil"是五个这样的工具包,它们分别针对数组操作、日期处理、文件操作、正则表达式匹配和字符串操作提供了一系列便利的方法。 1. **ArrayUtil**: - **...
public class FileUtil { /** * 新建目录 * @param folderPath String 如 c:/fqf * @return boolean */ public static void newFolder(String folderPath) { try { String filePath = folderPath; ...
`FileUtil`工具类集合了多种文件操作功能,为开发者提供了一站式的解决方案。下面将详细介绍这个工具类中涉及的关键知识点。 首先,文件大小转换是一个常见的需求,特别是在处理大文件时。`FileUtil`可能包含了将...
org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689) 解决这个问题后,重新生成的jar包
在百度官方文档的FileUtil类做了修改,函数可以直接调用,包含URI绝对路径转换,存储权限获取,根据文件路径读取Bytes数组等
fileutil.java有需要的自己下载。
通用文件方法,方发都很通用,在java中这些都是常用的
本文将深入探讨“Xenos.zip”这个压缩包中的核心内容——一个基于“Blackbone”库开发的DLL注入工具,以及相关的“FileUtil.cpp:452”代码段。我们将讨论DLL注入的基本原理,Blackbone库的功能,以及安全性方面的...
fileutil工具类 处理文件流工具 private static File file; /** * 判断文件是否存在 * * @param path * 文件路径 * @return boolean */ public static boolean fileIsExists(String path) { if (path ==...