java文件处理工具类详解
本文实例为大家分享了java文件处理工具类的具体代码,供大家参考,具体内容如下
importjava.io.BufferedInputStream; importjava.io.BufferedOutputStream; importjava.io.BufferedReader; importjava.io.BufferedWriter; importjava.io.ByteArrayInputStream; importjava.io.ByteArrayOutputStream; importjava.io.File; importjava.io.FileFilter; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.ObjectInputStream; importjava.io.ObjectOutput; importjava.io.ObjectOutputStream; importjava.io.OutputStream; importjava.io.OutputStreamWriter; importjava.io.Writer; importjava.net.URL; importjava.net.URLEncoder; importjava.text.DecimalFormat; importjava.util.ArrayList; importjava.util.Collections; importjava.util.Enumeration; importjava.util.List; importjava.util.Properties; importjavax.servlet.ServletOutputStream; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importorg.apache.commons.logging.Log; importorg.apache.commons.logging.LogFactory; publicclassFileUtil { privatestaticLoglogger=LogFactory.getLog(FileUtil.class); publicstaticvoidwriteFile(StringparamString1,StringparamString2) { writeFile(paramString1,paramString2,"utf-8"); } publicstaticvoidwriteFile(StringparamString1,StringparamString2,StringparamString3) { try { createFolder(paramString1,true); BufferedWriterlocalBufferedWriter=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(paramString1),paramString3)); localBufferedWriter.write(paramString2); localBufferedWriter.close(); } catch(IOExceptionlocalIOException) { localIOException.printStackTrace(); } } publicstaticvoidwriteFile(StringparamString,InputStreamparamInputStream) throwsIOException { FileOutputStreamlocalFileOutputStream=newFileOutputStream(paramString); byte[]arrayOfByte=newbyte['Ȁ']; inti=0; while((i=paramInputStream.read(arrayOfByte))!=-1){ localFileOutputStream.write(arrayOfByte,0,i); } paramInputStream.close(); localFileOutputStream.close(); } publicstaticStringreadFile(StringparamString) throwsIOException { try { FilelocalFile=newFile(paramString); Stringstr1=getCharset(localFile); StringBufferlocalStringBuffer=newStringBuffer(); BufferedReaderlocalBufferedReader=newBufferedReader(newInputStreamReader(newFileInputStream(paramString),str1)); Stringstr2; while((str2=localBufferedReader.readLine())!=null){ localStringBuffer.append(str2+"\r\n"); } localBufferedReader.close(); returnlocalStringBuffer.toString(); } catch(IOExceptionlocalIOException) { throwlocalIOException; } } publicstaticbooleanisExistFile(StringparamString) { booleanbool=false; FilelocalFile=newFile(paramString); if(localFile.isDirectory()) { File[]arrayOfFile=localFile.listFiles(); if((arrayOfFile!=null)&&(arrayOfFile.length!=0)){ bool=true; } } returnbool; } publicstaticStringgetCharset(FileparamFile) { Stringstr="GBK"; byte[]arrayOfByte=newbyte[3]; try { inti=0; BufferedInputStreamlocalBufferedInputStream=newBufferedInputStream(newFileInputStream(paramFile)); localBufferedInputStream.mark(0); intj=localBufferedInputStream.read(arrayOfByte,0,3); if(j==-1){ returnstr; } if((arrayOfByte[0]==-1)&&(arrayOfByte[1]==-2)) { str="UTF-16LE"; i=1; } elseif((arrayOfByte[0]==-2)&&(arrayOfByte[1]==-1)) { str="UTF-16BE"; i=1; } elseif((arrayOfByte[0]==-17)&&(arrayOfByte[1]==-69)&&(arrayOfByte[2]==-65)) { str="UTF-8"; i=1; } localBufferedInputStream.reset(); if(i==0) { intk=0; while((j=localBufferedInputStream.read())!=-1) { k++; if((j<240)&&((128>j)||(j>191))){ if((192<=j)&&(j<=223)) { j=localBufferedInputStream.read(); if(128>j){ break; } if(j>191){ break; } } elseif((224<=j)&&(j<=239)) { j=localBufferedInputStream.read(); if((128<=j)&&(j<=191)) { j=localBufferedInputStream.read(); if((128<=j)&&(j<=191)){ str="UTF-8"; } } } } } } localBufferedInputStream.close(); } catch(ExceptionlocalException) { localException.printStackTrace(); } returnstr; } publicstaticbyte[]readByte(InputStreamparamInputStream) { try { byte[]arrayOfByte=newbyte[paramInputStream.available()]; paramInputStream.read(arrayOfByte); returnarrayOfByte; } catch(FileNotFoundExceptionlocalFileNotFoundException) { logger.error("文件路径不存在:"+localFileNotFoundException.getMessage()); } catch(ExceptionlocalException) { localException.printStackTrace(); } returnnull; } publicstaticbyte[]readByte(StringparamString) { try { FileInputStreamlocalFileInputStream=newFileInputStream(paramString); byte[]arrayOfByte=newbyte[localFileInputStream.available()]; localFileInputStream.read(arrayOfByte); localFileInputStream.close(); returnarrayOfByte; } catch(FileNotFoundExceptionlocalFileNotFoundException) { logger.error("文件路径不存在:"+paramString); } catch(ExceptionlocalException) { localException.printStackTrace(); } returnnull; } publicstaticbooleanwriteByte(StringparamString,byte[]paramArrayOfByte) { try { BufferedOutputStreamlocalBufferedOutputStream=newBufferedOutputStream(newFileOutputStream(paramString)); localBufferedOutputStream.write(paramArrayOfByte); localBufferedOutputStream.close(); returntrue; } catch(ExceptionlocalException) { localException.printStackTrace(); } returnfalse; } publicstaticbooleandeleteDir(FileparamFile) { if(paramFile.isDirectory()) { String[]arrayOfString=paramFile.list(); for(inti=0;igetDiretoryOnly(FileparamFile) { ArrayListlocalArrayList=newArrayList(); if((paramFile!=null)&&(paramFile.exists())&&(paramFile.isDirectory())) { File[]arrayOfFile=paramFile.listFiles(newFileFilter() { publicbooleanaccept(FileparamAnonymousFile) { returnparamAnonymousFile.isDirectory(); } }); for(inti=0;i getFileOnly(FileparamFile) { ArrayListlocalArrayList=newArrayList(); File[]arrayOfFile=paramFile.listFiles(newFileFilter() { publicbooleanaccept(FileparamAnonymousFile) { returnparamAnonymousFile.isFile(); } }); for(inti=0;i -1){ returnparamString.substring(i+1).toLowerCase(); } return""; } publicstaticvoidcopyDir(StringparamString1,StringparamString2) throwsIOException { newFile(paramString2).mkdirs(); File[]arrayOfFile=newFile(paramString1).listFiles(); for(inti=0;i 1048576.0D) { d=paramDouble/1048576.0D; returnlocalDecimalFormat.format(d)+"M"; } if(paramDouble>1024.0D) { d=paramDouble/1024.0D; returnlocalDecimalFormat.format(d)+"KB"; } returnparamDouble+"bytes"; } publicstaticvoiddownLoadFile(HttpServletRequestparamHttpServletRequest,HttpServletResponseparamHttpServletResponse,StringparamString1,StringparamString2) throwsIOException { ServletOutputStreamlocalServletOutputStream=paramHttpServletResponse.getOutputStream(); FilelocalFile=newFile(paramString1); if(localFile.exists()) { paramHttpServletResponse.setContentType("APPLICATION/OCTET-STREAM"); Stringstr1=getFileExt(paramString1); if((!Validation.isEmpty(str1))&&(str1.toLowerCase().equals("apk"))){ paramHttpServletResponse.setContentType("application/vnd.android.package-archive"); } Stringstr2=paramString2; Stringstr3=paramHttpServletRequest.getHeader("USER-AGENT"); if((str3!=null)&&(str3.indexOf("MSIE")==-1)) { try { StringlocalObject1=transCharacter(paramHttpServletRequest,str2); paramHttpServletResponse.setHeader("Content-Disposition","attachment;filename="+(String)localObject1); } catch(ExceptionlocalException1) { localException1.printStackTrace(); } } else { str2=URLEncoder.encode(str2,"utf-8"); paramHttpServletResponse.addHeader("Content-Disposition","attachment;filename="+str2); } ObjectlocalObject1=null; try { localServletOutputStream=paramHttpServletResponse.getOutputStream(); localObject1=newFileInputStream(paramString1); byte[]arrayOfByte=newbyte['Ѐ']; inti=0; while((i=((FileInputStream)localObject1).read(arrayOfByte))>0){ localServletOutputStream.write(arrayOfByte,0,i); } localServletOutputStream.flush(); } catch(ExceptionlocalException2) { localException2.printStackTrace(); } finally { if(localObject1!=null) { ((FileInputStream)localObject1).close(); localObject1=null; } if(localServletOutputStream!=null) { localServletOutputStream.close(); localServletOutputStream=null; paramHttpServletResponse.flushBuffer(); } } } else { localServletOutputStream.write("文件不存在!".getBytes("utf-8")); } } privatestaticStringtransCharacter(HttpServletRequestparamHttpServletRequest,StringparamString) throwsException { if(paramHttpServletRequest.getHeader("USER-AGENT").toLowerCase().indexOf("msie")>0){ returnURLEncoder.encode(paramString,"UTF-8"); } if(paramHttpServletRequest.getHeader("USER-AGENT").toLowerCase().indexOf("firefox")>0){ returnnewString(paramString.getBytes("UTF-8"),"ISO8859-1"); } returnnewString(paramString.getBytes("gbk"),"ISO8859-1"); } publicstaticStringgetParentDir(StringparamString1,StringparamString2) { FilelocalFile=newFile(paramString2); Stringstr1=localFile.getParent(); Stringstr2=str1.replace(paramString1,""); returnstr2.replace(File.separator,"/"); } publicstaticStringgetClassesPath() { Stringstr=StringUtil.trimSufffix(AppUtil.getRealPath("/"),File.separator)+"\\WEB-INF\\classes\\".replace("\\",File.separator); returnstr; } publicstaticStringgetRootPath() { Stringstr=StringUtil.trimSufffix(AppUtil.getRealPath("/"),File.separator)+File.separator; returnstr; } publicstaticStringreadFromProperties(StringparamString1,StringparamString2) { Stringstr1=""; BufferedInputStreamlocalBufferedInputStream=null; try { localBufferedInputStream=newBufferedInputStream(newFileInputStream(paramString1)); PropertieslocalProperties=newProperties(); localProperties.load(localBufferedInputStream); str1=localProperties.getProperty(paramString2); Stringstr2=str1; returnstr2; } catch(ExceptionlocalException) { localException.printStackTrace(); } finally { if(localBufferedInputStream!=null){ try { localBufferedInputStream.close(); } catch(IOExceptionlocalIOException3) { localIOException3.printStackTrace(); } } } returnstr1; } publicstaticbooleansaveProperties(StringparamString1,StringparamString2,StringparamString3) { StringBufferlocalStringBuffer=newStringBuffer(); inti=0; BufferedReaderlocalBufferedReader=null; try { localBufferedReader=newBufferedReader(newInputStreamReader(newFileInputStream(paramString1),"utf-8")); Stringstr; while((str=localBufferedReader.readLine())!=null){ if(str.startsWith(paramString2)) { localStringBuffer.append(paramString2+"="+paramString3+"\r\n"); i=1; } else { localStringBuffer.append(str+"\r\n"); } } if(i==0){ localStringBuffer.append(paramString2+"="+paramString3+"\r\n"); } writeFile(paramString1,localStringBuffer.toString(),"utf-8"); booleanbool1=true; returnbool1; } catch(ExceptionlocalException) { localException.printStackTrace(); booleanbool2=false; returnbool2; } finally { if(localBufferedReader!=null){ try { localBufferedReader.close(); } catch(IOExceptionlocalIOException3) { localIOException3.printStackTrace(); } } } } publicstaticbooleandelProperties(StringparamString1,StringparamString2) { StringBufferlocalStringBuffer=newStringBuffer(); BufferedReaderlocalBufferedReader=null; try { localBufferedReader=newBufferedReader(newInputStreamReader(newFileInputStream(paramString1),"utf-8")); Stringstr; while((str=localBufferedReader.readLine())!=null){ if(!str.startsWith(paramString2)){ localStringBuffer.append(str+"\r\n"); } } writeFile(paramString1,localStringBuffer.toString(),"utf-8"); booleanbool1=true; returnbool1; } catch(ExceptionlocalException) { localException.printStackTrace(); booleanbool2=false; returnbool2; } finally { if(localBufferedReader!=null){ try { localBufferedReader.close(); } catch(IOExceptionlocalIOException3) { localIOException3.printStackTrace(); } } } } publicstaticList >getAllClassesByInterface(Class>paramClass,booleanparamBoolean) throwsIOException,ClassNotFoundException,IllegalStateException { if(!paramClass.isInterface()){ thrownewIllegalStateException("Classnotainterface."); } ClassLoaderlocalClassLoader=paramClass.getClassLoader(); Stringstr=paramBoolean?paramClass.getPackage().getName():"/"; returnfindClasses(paramClass,localClassLoader,str); } privatestaticList >findClasses(Class>paramClass,ClassLoaderparamClassLoader,StringparamString) throwsIOException,ClassNotFoundException { ArrayListlocalArrayList=newArrayList(); Stringstr=paramString.replace(".","/"); ObjectlocalObject; if(!str.equals("/")) { localObject=paramClassLoader.getResources(str); while(((Enumeration)localObject).hasMoreElements()) { URLlocalURL=(URL)((Enumeration)localObject).nextElement(); localArrayList.addAll(findResources(paramClass,newFile(localURL.getFile()),paramString)); } } else { localObject=paramClassLoader.getResource("").getPath(); localArrayList.addAll(findResources(paramClass,newFile((String)localObject),paramString)); } returnlocalArrayList; } privatestaticList >findResources(Class>paramClass,FileparamFile,StringparamString) throwsClassNotFoundException { ArrayListlocalArrayList=newArrayList(); if(!paramFile.exists()){ returnCollections.EMPTY_LIST; } File[]arrayOfFile1=paramFile.listFiles(); for(FilelocalFile:arrayOfFile1){ if(localFile.isDirectory()) { if(!localFile.getName().contains(".")){ if(!paramString.equals("/")){ localArrayList.addAll(findResources(paramClass,localFile,paramString+"."+localFile.getName())); }else{ localArrayList.addAll(findResources(paramClass,localFile,localFile.getName())); } } } elseif(localFile.getName().endsWith(".class")) { ClasslocalClass=null; if(!paramString.equals("/")){ localClass=Class.forName(paramString+"."+localFile.getName().substring(0,localFile.getName().length()-6)); }else{ localClass=Class.forName(localFile.getName().substring(0,localFile.getName().length()-6)); } if((paramClass.isAssignableFrom(localClass))&&(!paramClass.equals(localClass))){ localArrayList.add(localClass); } } } returnlocalArrayList; } publicstaticObjectcloneObject(ObjectparamObject) throwsException { ByteArrayOutputStreamlocalByteArrayOutputStream=newByteArrayOutputStream(); ObjectOutputStreamlocalObjectOutputStream=newObjectOutputStream(localByteArrayOutputStream); localObjectOutputStream.writeObject(paramObject); ByteArrayInputStreamlocalByteArrayInputStream=newByteArrayInputStream(localByteArrayOutputStream.toByteArray()); ObjectInputStreamlocalObjectInputStream=newObjectInputStream(localByteArrayInputStream); returnlocalObjectInputStream.readObject(); } publicstaticbooleanisFileType(StringparamString1,StringparamString2) { booleanbool=false; if(("IMAGE".equals(paramString2))&&((paramString1.toUpperCase().equals("JPG"))||(paramString1.toUpperCase().equals("PNG"))||(paramString1.toUpperCase().equals("GIF"))||(paramString1.toUpperCase().equals("JPEG")))){ bool=true; } returnbool; } publicstaticbooleanisFileType(StringparamString,String[]paramArrayOfString) { booleanbool=false; if((paramArrayOfString!=null)&&(paramArrayOfString.length>0)){ for(inti=0;i 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。