java文件操作工具类分享(file文件工具类)
发布时间:2023-11-24 22:32:47
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;
}
}


猜你喜欢
- Spring和SpringMVC的容器具有父子关系,Spring容器为父容器,SpringMVC为子容器,子容器可以引用父容器中的Bean,
- 起因unity程序build到pc上,拿到其他人的机器上结果有些功能不正常,看log里面大概是Fallback handler could
- 1、Spring的事务管理主要包括3个接口TransactionDefinition:封装事务的隔离级别,超时时间,是否为只读事务和事务的传
- 本文实例为大家分享了javaweb购物车案列的具体代码,供大家参考,具体内容如下一、项目目录结构 二、源代码dao包——dao层:
- ⛳️ 基本类型做形式参数(零散参数的数据接收)1、基本数据类型要求前台页面的表单输入框的name属性值与对应控制器方法中的形式参数名称与类型
- FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或Stre
- 有的人的电脑在使用 IntelliJ IDEA 的svn 时候,无法保存密码,输入密码时,勾选保存密码还是无效。每次都的输入密码,一次浪费2
- 目录android_os_MessageQueue.cppLooper.cpp1.epoll基础知识介绍epoll工作流程分析案例2. po
- 需求:键盘录入一个月份,输出该月份对应的季节。一年有四季3,4,5 春季6,7,8 夏季9,
- Java基础将Bean属性值放入Map中的实例利用发射将Java对象的属性值以属性名称为键,存储到Map中的简单实现。包括自身属性及从父类继
- IDEA安装后,前进 后退快捷按钮默认不在工具栏显示,需要手动将其添加到工具栏*按照图一选中Toolbar Run Actions ,点击右
- 本文实例为大家分享了Springboot整合pagehelper分页展示的具体代码,供大家参考,具体内容如下一、添加依赖查找maven中pa
- C#控制台程序使用Log4net日志组件,供大家参考,具体内容如下1、Log4net一般都不陌生,但是在配置上不同类型的项目又不相同的地方比
- 写在前面Activity是Android四大组件之一,用于直接跟用户进行交互,本篇文章将介绍Activity的启动流程。用户启动Activi
- 前言这是该工具的github地址:https://github.com/pingfangushi/screw一、引入pom.xml依赖<
- 目录捕获异常发生异常的位置开发程序是一项“烧脑”的工作,程序员不但要经过长期的知识学习和思维训练,还要做到一丝不苟,注意每一个细节和边界。即
- 第1 部分 hashCode的作用Java集合中有两类,一类是List,一类是Set他们之间的区别就在于List集合中的元素师有序的,且可以
- 1.简介 现在android应用中不可避免的要使用图片,有些图片是可以变化的,需要每次启动时从网络拉取,这种场景在有广告位的应用以及纯图片应
- 代码很简单,功能也很简单,这里就不多废话了#include<stdio.h>int main(){ char ku[16]={&
- 1,实现效果 2,实现代码:【1】 shape_drawable.xml