手机
当前位置:查字典教程网 >编程开发 >Java >java文件操作工具类分享(file文件工具类)
java文件操作工具类分享(file文件工具类)
摘要:复制代码代码如下:importjava.io.BufferedInputStream;importjava.io.BufferedOutpu...

复制代码 代码如下:

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;

}

}

【java文件操作工具类分享(file文件工具类)】相关文章:

基于java中子类的继承性的应用介绍

java实现mysql操作类分享 java连接mysql

Java使用jxl包写Excel文件适合列宽实现

java操作mongodb基础(查询 排序 输出list)

Java用文件流下载网络文件示例代码

java日期工具类实例分享

java文件操作练习代码 读取某个盘符下的文件

封装jndi操作ldap服务器的工具类

java操作XML实例代码

基于java file 文件操作operate file of java的应用

精品推荐
分类导航