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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。