java常用工具类 IP、File文件工具类
本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下
IP工具类
packagecom.jarvis.base.util; importjava.io.IOException; importjava.io.InputStreamReader; importjava.io.LineNumberReader; /** * * *@Title:IpMacUtil.java *@Packagecom.jarvis.base.util *@Description:Ip工具类。 *@versionV1.0 */ publicclassIpMacUtil{ /** *隐藏IP的最后一段 * *@paramip *需要进行处理的IP *@return隐藏后的IP */ publicstaticStringhideIp(Stringip){ if(StringHelper.isEmpty(ip)){ return""; } intpos=ip.lastIndexOf("."); if(pos==-1){ returnip; } ip=ip.substring(0,pos+1); ip=ip+"*"; returnip; } /** *获取IP地址. * *@paramrequest *HTTP请求. *@paramresponse *HTTP响应. *@paramurl *需转发到的URL. */ //publicstaticStringgetIpAddr(HttpServletRequestrequest) //{ //Stringip=request.getHeader("x-forwarded-for"); //if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)) //{ //ip=request.getHeader("Proxy-Client-IP"); //} //if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)) //{ //ip=request.getHeader("WL-Proxy-Client-IP"); //} //if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)) //{ //ip=request.getRemoteAddr(); //} //returnip; //} /** *判断该字串是否为IP * *@paramipStr *IP字串 *@return */ publicstaticbooleanisIP(StringipStr){ Stringip="(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)"; StringipDot=ip+"\\."; returnipStr.matches(ipDot+ipDot+ipDot+ip); } /** *获取客户端Mac * *@paramip *@return */ publicstaticStringgetMACAddress(Stringip){ Stringstr=""; StringmacAddress=""; try{ Processp=Runtime.getRuntime().exec("nbtstat-A"+ip); InputStreamReaderir=newInputStreamReader(p.getInputStream()); LineNumberReaderinput=newLineNumberReader(ir); for(inti=1;i<100;i++){ str=input.readLine(); if(str!=null){ if(str.indexOf("MACAddress")>1){ macAddress=str.substring(str.indexOf("MACAddress")+14,str.length()); break; } } } }catch(IOExceptione){ return""; } returnmacAddress; } }
File文件工具类
packagecom.jarvis.base.util; importjava.io.ByteArrayInputStream; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileOutputStream; importjava.io.IOException; importjava.util.List; importjava.util.StringTokenizer; importjava.util.zip.CRC32; importjava.util.zip.CheckedInputStream; importorg.apache.commons.io.FilenameUtils; importorg.dom4j.Document; importorg.dom4j.io.OutputFormat; importorg.dom4j.io.XMLWriter; /** * * *@Title:FileHelper.java *@Packagecom.jarvis.base.util *@Description:文件工具类 *@versionV1.0 */ publicclassFileHelper{ /** *1kb */ privatefinalstaticintKB_1=1024; /** *获得文件的CRC32校验和 * *@paramfile *要进行校验的文件 *@return *@throwsException */ publicstaticStringgetFileCRCCode(Filefile)throwsException{ FileInputStreamis=newFileInputStream(file); CRC32crc32=newCRC32(); CheckedInputStreamcis=newCheckedInputStream(is,crc32); byte[]buffer=null; buffer=newbyte[KB_1]; while(cis.read(buffer)!=-1){ } is.close(); buffer=null; returnLong.toHexString(crc32.getValue()); } /** *获得字串的CRC32校验和 * *@paramstring *要进行校验的字串 *@return *@throwsException */ publicstaticStringgetStringCRCCode(Stringstring)throwsException{ ByteArrayInputStreaminputStream=newByteArrayInputStream(string.getBytes()); CRC32crc32=newCRC32(); CheckedInputStreamcheckedinputstream=newCheckedInputStream(inputStream,crc32); byte[]buffer=null; buffer=newbyte[KB_1]; while(checkedinputstream.read(buffer)!=-1){ } inputStream.close(); buffer=null; returnLong.toHexString(crc32.getValue()); } /** *连接路径和文件名称,组成最后的包含路径的文件名 * *@parambasePath *文件路径 *@paramfullFilenameToAdd *文件名称 *@return */ publicstaticStringconcat(StringbasePath,StringfullFilenameToAdd){ returnFilenameUtils.concat(basePath,fullFilenameToAdd); } /** *获得不带文件扩展名的文件名称 * *@paramfilename *文件完整路径 *@return不带扩展名的文件名称 */ publicstaticStringgetBaseName(Stringfilename){ returnFilenameUtils.getBaseName(filename); } /** *获得带扩展名的文件名称 * *@paramfilename *文件完整路径 *@return文件名称 */ publicstaticStringgetFileName(Stringfilename){ returnFilenameUtils.getName(filename); } /** *获得文件的完整路径,包含最后的路径分隔条 * *@paramfilename *文件完整路径 *@return目录结构 */ publicstaticStringgetFullPath(Stringfilename){ returnFilenameUtils.getFullPath(filename); } /** *获得文件的完整路径,不包含最后的路径分隔条 * *@paramfilename *文件完整路径 *@return */ publicstaticStringgetFullPathNoEndSeparator(Stringfilename){ returnFilenameUtils.getFullPathNoEndSeparator(filename); } /** *判断文件是否有某扩展名 * *@paramfilename *文件完整路径 *@paramextension *扩展名名称 *@return若是,返回true,否则返回false */ publicstaticbooleanisExtension(Stringfilename,Stringextension){ returnFilenameUtils.isExtension(filename,extension); } /** *判断文件的扩展名是否是扩展名数组中的一个 * *@paramfilename *文件完整路径 *@paramextensions *扩展名名称 *@return若是,返回true,否则返回false */ publicstaticbooleanisExtension(Stringfilename,String[]extensions){ returnFilenameUtils.isExtension(filename,extensions); } /** *规范化路径,合并其中的多个分隔符为一个,并转化为本地系统路径格式 * *@paramfilename *文件完整路径 *@return */ publicstaticStringnormalize(Stringfilename){ returnFilenameUtils.normalize(filename); } /** *规范化路径,合并其中的多个分隔符为一个,并转化为本地系统路径格式,若是路径,则不带最后的路径分隔符 * *@paramfilename *文件完整路径 *@return */ publicstaticStringnormalizeNoEndSeparator(Stringfilename){ returnFilenameUtils.normalizeNoEndSeparator(filename); } /** *把文件路径中的分隔符转换为unix的格式,也就是"/" * *@parampath *文件完整路径 *@return转换后的路径 */ publicstaticStringseparatorsToUnix(Stringpath){ returnFilenameUtils.separatorsToUnix(path); } /** *把文件路径中的分隔符转换为window的格式,也就是"\" * *@parampath *文件完整路径 *@return转换后的路径 */ publicstaticStringseparatorsToWindows(Stringpath){ returnFilenameUtils.separatorsToWindows(path); } /** *把文件路径中的分隔符转换当前系统的分隔符 * *@parampath *文件完整路径 *@return转换后的路径 */ publicstaticStringseparatorsToSystem(Stringpath){ returnFilenameUtils.separatorsToSystem(path); } /** *提取文件的扩展名 * *@paramfilename *文件名称 *@return文件扩展名,若没有扩展名,则返回空字符串 */ publicstaticStringgetExtension(Stringfilename){ returnFilenameUtils.getExtension(filename); } /** *移出文件的扩展名 * *@paramfilename *文件名称 *@return若文件存在扩展名,则移出扩展名,然后返回移出后的值 */ publicstaticStringremoveExtension(Stringfilename){ returnFilenameUtils.removeExtension(filename); } /** *清除一个目录的内容,但不删除此目录 * *@paramdirectory *需要清除的目录 *@returntrue:清除成功false:清除失败 */ publicstaticbooleancleanDirectory(Filedirectory){ try{ org.apache.commons.io.FileUtils.cleanDirectory(directory); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("清除目录出错"); } returnfalse; } /** *拷贝一个目录的内容到另外一个目录中 * *@paramsrcDir *源目录 *@paramdestDir *目的目录 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyDirectory(FilesrcDir,FiledestDir){ returncopyDirectory(srcDir,destDir,true); } /** *拷贝一个目录的内容到另外一个目录中 * *@paramsrcDir *源目录 *@paramdestDir *目的目录 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyDirectory(StringsrcDir,StringdestDir){ returncopyDirectory(newFile(srcDir),newFile(destDir)); } /** *拷贝一个目录的内容到另外一个目录中 * *@paramsrcDir *源目录 *@paramdestDir *目的目录 *@parampreserveFileDate *是否保持文件日期 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyDirectory(FilesrcDir,FiledestDir,booleanpreserveFileDate){ try{ org.apache.commons.io.FileUtils.copyDirectory(srcDir,destDir,preserveFileDate); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("复制目录出错"); } returnfalse; } /** *拷贝源目录的内容到目的目录中(注:是拷贝到目的目录的里面) * *@paramsrcDir *源目录 *@paramdestDir *目的目录 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyDirectoryToDirectory(FilesrcDir,FiledestDir){ try{ org.apache.commons.io.FileUtils.copyDirectoryToDirectory(srcDir,destDir); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("复制目录出错"); } returnfalse; } /** *拷贝源目录的内容到目的目录中(注:是拷贝到目的目录的里面) * *@paramsrcDir *源目录 *@paramdestDir *目的目录 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyDirectoryToDirectory(StringsrcDir,StringdestDir){ returncopyDirectoryToDirectory(newFile(srcDir),newFile(destDir)); } /** *拷贝文件 * *@paramsrcFile *源文件 *@paramdestFile *目的文件 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyFile(FilesrcFile,FiledestFile){ returncopyFile(srcFile,destFile,true); } /** *拷贝文件 * *@paramsrcFile *源文件路径 *@paramdestFile *目的文件路径 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyFile(StringsrcFile,StringdestFile){ returncopyFile(newFile(srcFile),newFile(destFile)); } /** *拷贝文件 * *@paramsrcFile *源文件 *@paramdestFile *目的文件 *@parampreserveFileDate *是否保留文件日期 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyFile(FilesrcFile,FiledestFile,booleanpreserveFileDate){ try{ org.apache.commons.io.FileUtils.copyFile(srcFile,destFile,preserveFileDate); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("复制文件出错"); } returnfalse; } /** *拷贝文件到某目录中 * *@paramsrcFile *源文件 *@paramdestDir *目的目录 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyFileToDirectory(FilesrcFile,FiledestDir){ try{ org.apache.commons.io.FileUtils.copyFileToDirectory(srcFile,destDir); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("复制文件出错"); } returnfalse; } /** *拷贝文件到某目录中 * *@paramsrcFile *源文件 *@paramdestDir *目的目录 *@returntrue:拷贝成功false:拷贝失败 */ publicstaticbooleancopyFileToDirectory(StringsrcFile,StringdestDir){ returncopyFileToDirectory(newFile(srcFile),newFile(destDir)); } /** *删除一个目录和该目录下的所有内容 * *@paramdirectory *需要删除的目录 *@returntrue:删除成功false:删除失败 */ publicstaticbooleandeleteDirectory(Stringdirectory){ try{ org.apache.commons.io.FileUtils.deleteDirectory(newFile(directory)); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("删除目录出错"); } returnfalse; } /** *删除文件 * *@paramfile *需要删除的文件路径 *@returntrue:删除成功false:删除失败 */ publicstaticbooleandeleteFile(Stringfile){ try{ org.apache.commons.io.FileUtils.forceDelete(newFile(file)); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("删除文件出错"); } returnfalse; } /** *递归创建目录 * *@paramdirectory *目录 *@return */ publicstaticbooleancreateDirectory(Stringdirectory){ try{ org.apache.commons.io.FileUtils.forceMkdir(newFile(directory)); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("创建目录出错"); } returnfalse; } /** *读入文件到字节数组中 * *@paramfile *需要读取的文件路径 *@return读取的字节数组,若读入失败,则返回null */ publicstaticbyte[]readFileToByteArray(Stringfile){ try{ byte[]bytes=org.apache.commons.io.FileUtils.readFileToByteArray(newFile(file)); returnbytes; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("读取文件出错"); } returnnull; } /** *读入文件到字串中 * *@paramfile *需要读取的文件路径 *@return读取的文件内容,若读入失败,则返回空字串 */ publicstaticStringreadFileToString(Stringfile,Stringencoding){ try{ if(StringHelper.isEmpty(encoding)){ encoding="GBK"; } Stringcontent=org.apache.commons.io.FileUtils.readFileToString(newFile(file),encoding); returncontent; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("读取文件出错"); } return""; } /** *读入文件到字串中 * *@paramfile *需要读取的文件路径 *@return读取的文件内容,若读入失败,则返回空字串 */ publicstaticStringreadFileToString(Stringfile){ returnreadFileToString(file,"GBK"); } /** *读入文本文件到一个按行分开的List中 * *@paramfile *需要读取的文件路径 *@return按行内容分开的List */ @SuppressWarnings("rawtypes") publicstaticListreadLines(Stringfile){ returnreadLines(file,"GBK"); } /** *读入文本文件到一个按行分开的List中 * *@paramfile *需要读取的文件路径 *@return按行内容分开的List */ @SuppressWarnings("rawtypes") publicstaticListreadLines(Stringfile,Stringencoding){ try{ if(StringHelper.isEmpty(encoding)){ encoding="GBK"; } ListlineList=org.apache.commons.io.FileUtils.readLines(newFile(file),encoding); returnlineList; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("读取文件出错"); } returnnull; } /** *递归求一个目录的容量大小 * *@paramdirectory *需要计算容量的目录路径 *@return容量的大小(字节数) */ publicstaticlongsizeOfDirectory(Stringdirectory){ returnorg.apache.commons.io.FileUtils.sizeOfDirectory(newFile(directory)); } /** *写字节数组到文件中,若文件不存在,则建立新文件 * *@paramfile *需要写的文件的路径 *@paramdata *需要写入的字节数据 *@returntrue:写入成功false:写入失败 */ publicstaticbooleanwriteToFile(Stringfile,byte[]data){ try{ org.apache.commons.io.FileUtils.writeByteArrayToFile(newFile(file),data); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("写文件出错"); } returnfalse; } /** *写字串到文件中,若文件不存在,则建立新文件 * *@paramfile *需要写的文件的路径 *@paramdata *需要写入的字串 *@returntrue:写入成功false:写入失败 */ publicstaticbooleanwriteToFile(Stringfile,Stringdata){ returnwriteToFile(file,data,"GBK"); } /** *写字串到文件中,若文件不存在,则建立新文件 * *@paramfile *需要写的文件的路径 *@paramdata *需要写入的字串 *@paramdncoding *文件编码,默认为GBK *@returntrue:写入成功false:写入失败 */ publicstaticbooleanwriteToFile(Stringfile,Stringdata,Stringencoding){ try{ if(encoding==null||"".equals(encoding)){ encoding="GBK"; } org.apache.commons.io.FileUtils.writeStringToFile(newFile(file),data,encoding); returntrue; }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("写文件出错"); } returnfalse; } /** *建立由filePathName指定的文件,若文件路径中的目录不存在,则先建立目录 * *@paramfilePathName *文件路径全名 *@return */ publicstaticbooleancreateNewFile(StringfilePathName){ StringfilePath=FileHelper.getFullPath(filePathName); //若目录不存在,则建立目录 if(!FileHelper.exists(filePath)){ if(!createDirectory(filePath)){ returnfalse; } } try{ Filefile=newFile(filePathName); returnfile.createNewFile(); }catch(IOExceptionex){ ex.printStackTrace(); System.err.println("创建文件出错"); returnfalse; } } /** *判断文件和目录是否已存在 * *@paramfilePath *文件和目录完整路径 *@returntru:存在false:不存在 */ publicstaticbooleanexists(StringfilePath){ Filefile=newFile(filePath); returnfile.exists(); } /** *判断特定的路径是否为文件 * *@paramfilePath *文件完整的路径 *@return若是文件,则返回true,否则返回false */ publicstaticbooleanisFile(StringfilePath){ Filefile=newFile(filePath); returnfile.isFile(); } /** *判断特定的路径是否为目录 * *@paramfilePath *文件完整的路径 *@return若是目录,则返回true,否则返回false */ publicstaticbooleanisDirectory(StringfilePath){ Filefile=newFile(filePath); returnfile.isDirectory(); } /** *更改文件的名称,若不在同一个目录下,则系统会移动文件 * *@paramsrcFile *源文件路径名称 *@paramdestFile *目的文件路径名称 *@return */ publicstaticbooleanrenameTo(StringsrcFile,StringdestFile){ Filefile=newFile(srcFile); returnfile.renameTo(newFile(destFile)); } /** * *描述:根据document生成Xml文件作者:刘宝时间:Jun9,20103:16:11PM * *@paramfileName *生成文件的路径 *@paramdocument *@paramencoding *编码格式 *@return */ publicstaticbooleanWriteToXMLFile(StringfileName,Documentdocument,Stringencoding){ createNewFile(fileName); booleansuccess=false; /**格式化输出,类型IE浏览一样*/ OutputFormatformat=OutputFormat.createPrettyPrint(); /**指定XML编码*/ format.setEncoding(encoding); XMLWriterwriter=null; try{ /**将document中的内容写入文件中*/ writer=newXMLWriter(newFileOutputStream(newFile(fileName)),format); writer.write(document); writer.flush(); success=true; /**执行成功,需返回true*/ }catch(Exceptionex){ ex.printStackTrace(); System.err.println("写文件出错"); }finally{ if(writer!=null){ try{ writer.close(); writer=null; }catch(IOExceptione){ e.printStackTrace(); System.err.println("ConvertcodeError"); } } } returnsuccess; } /** *获取文件的后缀名并转化成大写 * *@paramfileName *文件名 *@return */ publicStringgetFileSuffix(StringfileName)throwsException{ returnfileName.substring(fileName.lastIndexOf(".")+1, fileName.length()).toUpperCase(); } /** *创建多级目录 * *@parampath *目录的绝对路径 */ publicvoidcreateMultilevelDir(Stringpath){ try{ StringTokenizerst=newStringTokenizer(path,"/"); Stringpath1=st.nextToken()+"/"; Stringpath2=path1; while(st.hasMoreTokens()){ path1=st.nextToken()+"/"; path2+=path1; Fileinbox=newFile(path2); if(!inbox.exists()) inbox.mkdir(); } }catch(Exceptione){ System.out.println("目录创建失败"+e); e.printStackTrace(); } } /** *删除文件/目录(递归删除文件/目录) * *@parampath *文件或文件夹的绝对路径 */ publicvoiddeleteAll(Stringdirpath){ if(dirpath==null){ System.out.println("目录为空"); }else{ Filepath=newFile(dirpath); try{ if(!path.exists()) return;//目录不存在退出 if(path.isFile())//如果是文件删除 { path.delete(); return; } File[]files=path.listFiles();//如果目录中有文件递归删除文件 for(inti=0;i以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。