import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.text.DateFormat;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;
import java.util.Locale;
import java.util.StringTokenizer;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
*
* @author IBM
*
*/
public class FileUtil {
public static String dirSplit = "\\";//linux windows
/**
* save file accroding to physical directory infomation
*
* @param physicalDir
* physical directory
* @param fname
* file name of destination
* @param istream
* input stream of destination file
* @return
*/
public static boolean SaveFileByPhysicalDir(String physicalPath,
InputStream istream) {
boolean flag = false;
try {
OutputStream os = new FileOutputStream(physicalPath);
int readBytes = 0;
byte buffer[] = new byte[8192];
while ((readBytes = istream.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, readBytes);
}
os.close();
flag = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return flag;
}
public static boolean CreateDirectory(String dir){
File f = new File(dir);
if (!f.exists()) {
f.mkdirs();
}
return true;
}
public static void saveAsFileOutputStream(String physicalPath,String content) {
File file = new File(physicalPath);
boolean b = file.getParentFile().isDirectory();
if(!b){
File tem = new File(file.getParent());
// tem.getParentFile().setWritable(true);
tem.mkdirs();// 创建目录
}
//Log.info(file.getParent()+";"+file.getParentFile().isDirectory());
FileOutputStream foutput =null;
try {
foutput = new FileOutputStream(physicalPath);
foutput.write(content.getBytes("UTF-8"));
//foutput.write(content.getBytes());
}catch(IOException ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}finally{
try {
foutput.flush();
foutput.close();
}catch(IOException ex){
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
//Log.info("文件保存成功:"+ physicalPath);
}
/**
* COPY文件
* @param srcFile String
* @param desFile String
* @return boolean
*/
public boolean copyToFile(String srcFile, String desFile) {
File scrfile = new File(srcFile);
if (scrfile.isFile() == true) {
int length;
FileInputStream fis = null;
try {
fis = new FileInputStream(scrfile);
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
}
File desfile = new File(desFile);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(desfile, false);
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
}
desfile = null;
length = (int) scrfile.length();
byte[] b = new byte[length];
try {
fis.read(b);
fis.close();
fos.write(b);
fos.close();
}
catch (IOException e) {
e.printStackTrace();
}
} else {
scrfile = null;
return false;
}
scrfile = null;
return true;
}
/**
* COPY文件夹
* @param sourceDir String
* @param destDir String
* @return boolean
*/
public boolean copyDir(String sourceDir, String destDir) {
File sourceFile = new File(sourceDir);
String tempSource;
String tempDest;
String fileName;
File[] files = sourceFile.listFiles();
for (int i = 0; i < files.length; i++) {
fileName = files[i].getName();
tempSource = sourceDir + "/" + fileName;
tempDest = destDir + "/" + fileName;
if (files[i].isFile()) {
copyToFile(tempSource, tempDest);
} else {
copyDir(tempSource, tempDest);
}
}
sourceFile = null;
return true;
}
/**
* 删除指定目录及其中的所有内容。
* @param dir 要删除的目录
* @return 删除成功时返回true,否则返回false。
*/
public boolean deleteDirectory(File dir) {
File[] entries = dir.listFiles();
int sz = entries.length;
for (int i = 0; i < sz; i++) {
if (entries[i].isDirectory()) {
if (!deleteDirectory(entries[i])) {
return false;
}
} else {
if (!entries[i].delete()) {
return false;
}
}
}
if (!dir.delete()) {
return false;
}
return true;
}
/**
* File exist check
*
* @param sFileName File Name
* @return boolean true - exist<br>
* false - not exist
*/
public static boolean checkExist(String sFileName) {
boolean result = false;
try {
File f = new File(sFileName);
//if (f.exists() && f.isFile() && f.canRead()) {
if (f.exists() && f.isFile()) {
result = true;
} else {
result = false;
}
} catch (Exception e) {
result = false;
}
/* return */
return result;
}
/**
* Get File Size
*
* @param sFileName File Name
* @return long File's size(byte) when File not exist return -1
*/
public static long getSize(String sFileName) {
long lSize = 0;
try {
File f = new File(sFileName);
//exist
if (f.exists()) {
if (f.isFile() && f.canRead()) {
lSize = f.length();
} else {
lSize = -1;
}
//not exist
} else {
lSize = 0;
}
} catch (Exception e) {
lSize = -1;
}
/* return */
return lSize;
}
/**
* File Delete
*
* @param sFileName File Nmae
* @return boolean true - Delete Success<br>
* false - Delete Fail
*/
public static boolean deleteFromName(String sFileName) {
boolean bReturn = true;
try {
File oFile = new File(sFileName);
//exist
if (oFile.exists()) {
//Delete File
boolean bResult = oFile.delete();
//Delete Fail
if (bResult == false) {
bReturn = false;
}
//not exist
} else {
}
} catch (Exception e) {
bReturn = false;
}
//return
return bReturn;
}
/**
* File Unzip
*
* @param sToPath Unzip Directory path
* @param sZipFile Unzip File Name
*/
@SuppressWarnings("rawtypes")
public static void releaseZip(String sToPath, String sZipFile) throws Exception {
if (null == sToPath ||("").equals(sToPath.trim())) {
File objZipFile = new File(sZipFile);
sToPath = objZipFile.getParent();
}
ZipFile zfile = new ZipFile(sZipFile);
Enumeration zList = zfile.entries();
ZipEntry ze = null;
byte[] buf = new byte[1024];
while (zList.hasMoreElements()) {
ze = (ZipEntry) zList.nextElement();
if (ze.isDirectory()) {
continue;
}
OutputStream os =
new BufferedOutputStream(
new FileOutputStream(getRealFileName(sToPath, ze.getName())));
InputStream is = new BufferedInputStream(zfile.getInputStream(ze));
int readLen = 0;
while ((readLen = is.read(buf, 0, 1024)) != -1) {
os.write(buf, 0, readLen);
}
is.close();
os.close();
}
zfile.close();
}
/**
* getRealFileName
*
* @param baseDir Root Directory
* @param absFileName absolute Directory File Name
* @return java.io.File Return file
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
private static File getRealFileName(String baseDir, String absFileName) throws Exception {
File ret = null;
List dirs = new ArrayList();
StringTokenizer st = new StringTokenizer(absFileName, System.getProperty("file.separator"));
while (st.hasMoreTokens()) {
dirs.add(st.nextToken());
}
ret = new File(baseDir);
if (dirs.size() > 1) {
for (int i = 0; i < dirs.size() - 1; i++) {
ret = new File(ret, (String) dirs.get(i));
}
}
if (!ret.exists()) {
ret.mkdirs();
}
ret = new File(ret, (String) dirs.get(dirs.size() - 1));
return ret;
}
/**
* copyFile
*
* @param srcFile Source File
* @param targetFile Target file
*/
@SuppressWarnings("resource")
static public void copyFile(String srcFile , String targetFile) throws IOException
{
FileInputStream reader = new FileInputStream(srcFile);
FileOutputStream writer = new FileOutputStream(targetFile);
byte[] buffer = new byte [4096];
int len;
try
{
reader = new FileInputStream(srcFile);
writer = new FileOutputStream(targetFile);
while((len = reader.read(buffer)) > 0)
{
writer.write(buffer , 0 , len);
}
}
catch(IOException e)
{
throw e;
}
finally
{
if (writer != null)writer.close();
if (reader != null)reader.close();
}
}
/**
* renameFile
*
* @param srcFile Source File
* @param targetFile Target file
*/
static public void renameFile(String srcFile , String targetFile) throws IOException
{
try {
copyFile(srcFile,targetFile);
deleteFromName(srcFile);
} catch(IOException e){
throw e;
}
}
public static void write(String tivoliMsg,String logFileName) {
try{
byte[] bMsg = tivoliMsg.getBytes();
FileOutputStream fOut = new FileOutputStream(logFileName, true);
fOut.write(bMsg);
fOut.close();
} catch(IOException e){
//throw the exception
}
}
/**
* This method is used to log the messages with timestamp,error code and the method details
* @param errorCd String
* @param className String
* @param methodName String
* @param msg String
*/
public static void writeLog(String logFile, String batchId, String exceptionInfo) {
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.JAPANESE);
Object args[] = {df.format(new Date()), batchId, exceptionInfo};
String fmtMsg = MessageFormat.format("{0} : {1} : {2}", args);
try {
File logfile = new File(logFile);
if(!logfile.exists()) {
logfile.createNewFile();
}
FileWriter fw = new FileWriter(logFile, true);
fw.write(fmtMsg);
fw.write(System.getProperty("line.separator"));
fw.flush();
fw.close();
} catch(Exception e) {
}
}
public static String readTextFile(String realPath) throws Exception {
File file = new File(realPath);
if (!file.exists()){
System.out.println("File not exist!");
return null;
}
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(realPath),"UTF-8"));
String temp = "";
String txt="";
while((temp = br.readLine()) != null){
txt+=temp;
}
br.close();
return txt;
}
}
分享到:
相关推荐
可以处理png格式图片,可以处理透明背景的图片resizePhotoForPng; 加载下载文件loadDownLoadResource; 缓存复杂文本文件cacheMultipartFile; 缓存url文件cacheUrlFile; 缓存MultipartFile复杂文本...
Rdf-File是一个处理结构化文本文件的工具组件
* Read content from local file. FIXME How to judge UTF-8 and GBK, the * correct code should be: FileReader fr = new FileReader(new * InputStreamReader(fileName, "ENCODING")); Might let the user ...
从输入流中读取string,新建一个文件并写入内容,复制一个目录及其子目录、文件到另外一个目录 ,递归删除目录下的所有文件及子目录下所有文件,读取文本文件内容,以行的形式读取....
FileAPI — 一组javascript处理文件的工具。支持多文件上传、拖拽上传、图片裁剪、调整和自动定向。
公务员考试标准的照片处理工具,非常便捷易用!请大家尽情使用
文件处理,文件处理,文件优化
Better File Rename文件重命名工具,功能强大,各种重命名。 适合文件处理各种使用。
fileutil工具类 处理文件流工具 private static File file; /** * 判断文件是否存在 * * @param path * 文件路径 * @return boolean */ public static boolean fileIsExists(String path) { if (path ==...
file文件操作工具类,可以处理所有文件相关的操作,快速开发文件处理模块
ExcelFile上传后读取内容处理的工具类,是JAVA写的,下载参考一下!
功能:用于简单处理下载链接文本的小工具。 文本内容要求: 文本内容为纯文本格式; 每行文本只能有一个以ftp://或者http://开头的链接; 如果有多个将只截取从第一个标识符开始的所有文本。 程序运行格式: ...
照片集中处理工具_v1.4.3_W2_install(1).exe.file
集查壳、虚拟机脱壳、PE文件编辑、PE文件重建、导入表抓取(内置虚拟机解密某些加密导入表)、进程内存查看/DUMP、附加数据处理、文件地址转换、PEID插件支持、MD5计算以及快捷的第三方工具利用等功能,适合病毒分析中...
VASP 用户的学科分布很广,有做催化的,有做光学的,有做材料的,各个领域的数据后处理方式大相径庭。主要功能有:1.自动生成VASP计算所需的必备文件,包括IN
解压密码:123 ||Withdata Data File Converter 2022是一个一体化套件,它为您提供了所有必要的工具和功能,用于处理您的文档。 它根据您的需要提供各种转换类型的设置,如设置质量和许多其他选项。 您还可以与使用...
符号处理工具现包含点符号沿线渲染和面中心点渲染两个工具,用于实现地 图文档中特殊的渲染效果。符号处理工具采用Visual Studio .NET作为工具包组件 开发环境,编程语言采用C#,以Esri AddIn File形式分发,最后...
开源免费文档转换工具 File Converter 中文版开源免费文档转换工具 File Converter 中文版 集成在上下文菜单中的多功能转换器 File Converter 最重要的好处之一是对不同文件类型的支持,包括多媒体数据,图形内容和 ...
strings.com 是强大的纯DOS环境 下的文本处理工具 STRINGS常用方法: 1、把文本文件 LIST.TXT 包含的行数赋值给变量 LN STRINGS LN=LINESIZE LIST.TXT 2、把文本文件 LIST.TXT 的大小传递给变量FS STRINGS FS=FILE...
一个公共的文件处理类, 包含大大小小50多个方法, 不用自己处理连接池问题,不用自己关闭文件流, 非常方便, 我一直都用这个类