codeutil.java
来自「移动彩信管理平台」· Java 代码 · 共 238 行
JAVA
238 行
package com.my7g.zj.mobile.mms.util;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Vector;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
public class CodeUtil {
private final static Logger log =
Logger.getLogger(CodeUtil.class);
/**
* Method ConvertStr
* Comment:
* 转码函数选择不同的类型实现GBK和ISO8859_1的编码转换
* Input:
* instr String 需转换的字符串
* itype int 转换的方式
* @return String 转码后的字符串
*/
public static String ConverStr(String instr,int itype) {
if (instr == null) return "";
try {
switch (itype) {
case 0: return instr;
case 1: return new String(instr.getBytes("ISO8859-1"));
case 2: return new String(instr.getBytes("GBK"));
case 3: return new String(instr.getBytes(), "ISO8859-1");
case 4: return new String(instr.getBytes(), "GBK");
case 5: return new String(instr.getBytes("ISO8859-1"), "GBK");
case 6: return new String(instr.getBytes("GBK"), "ISO8859-1");
}
}
catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
/**
*
* @param input
* 任意字符串
*
* @return 半角字符串
*/
public static String toBJ(String input) {
char[] c = input.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == 12288) {
c[i] = (char) 32;
continue;
}
if (c[i] > 65280 && c[i] < 65375)
c[i] = (char) (c[i] - 65248);
}
return new String(c);
}
/**
* Method fileEqual
* Comment:
* 实现两个文件的互相比较
* Input:
* fileURL String 文件的URL地址
* validateURL String 需复核对比的文件URL地址
*
* @return boolean true -- 文件相同
* false -- 文件不同
* @throws Exception
*
*/
public static boolean fileEqual(String fileURL,String validateURL) throws Exception{
boolean flag = true;
BufferedInputStream editBuffer;
BufferedInputStream validateBuffer;
//读取修改后的文件
try {
editBuffer = new BufferedInputStream(new FileInputStream(fileURL));
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new Exception("操作文件没有找到。");
}
int editFileLength;
try {
editFileLength = editBuffer.available();
} catch (IOException e) {
e.printStackTrace();
throw new Exception("文件操作失败。");
}
byte[] editByte = new byte[editFileLength];
try {
editBuffer.read(editByte, 0, editFileLength);
} catch (IOException e) {
e.printStackTrace();
throw new Exception("文件操作失败。");
}
try {
editBuffer.close();
} catch (IOException e) {
e.printStackTrace();
throw new Exception("文件操作失败。");
}
// 读取复核文件
try {
validateBuffer = new BufferedInputStream(
new FileInputStream(validateURL));
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new Exception("操作文件没有找到。");
}
int validateFileLength;
try {
validateFileLength = validateBuffer.available();
} catch (IOException e) {
e.printStackTrace();
throw new Exception("文件操作失败。");
}
byte[] validateByte = new byte[validateFileLength];
try {
validateBuffer.read(validateByte, 0, validateFileLength);
} catch (IOException e) {
e.printStackTrace();
throw new Exception("文件操作失败。");
}
try {
validateBuffer.close();
} catch (IOException e) {
throw new Exception("文件操作失败。");
}
// 先判断两个数组长度是否相同相同则进行判断
if (editFileLength != validateFileLength) {
flag = false;
} else {
// 两个字节对象比较
for (int i = 0; i < editByte.length; i++) {
if (editByte[i] != validateByte[i]) {
flag = false;
}
}
}
return flag;
}
/**
* Method fileEqual
* Comment:
* 实现两个文件的互相比较
* Input:
* fileURL String 文件的URL地址
* validateURL String 需复核对比的文件URL地址
*
* @return boolean true -- 相同
* false -- 不同
* @throws IOException
*
*/
public static boolean objectEqual(Object obj,Object validateObj) throws IOException{
boolean flag = true;
//将类a放入文件BAOS1中
ByteArrayOutputStream BAOS1 = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream1 =
new ObjectOutputStream(BAOS1);
objectOutputStream1.writeObject(obj);
objectOutputStream1.close();
byte[] byteFile1 = new byte[BAOS1.size()];
byteFile1 = BAOS1.toByteArray();
//将类b放入文件BAOS2中
ByteArrayOutputStream BAOS2 = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream2 =
new ObjectOutputStream(BAOS2);
objectOutputStream2.writeObject(validateObj);
objectOutputStream2.close();
BAOS2.toByteArray();
byte[] byteFile2 = new byte[BAOS2.size()];
byteFile2 = BAOS2.toByteArray();
log.debug(byteFile1.length + " " + byteFile2.length);
//先判断两个数组长度是否相同相同则进行判断
if(byteFile1.length != byteFile2.length){
String temp = "";
for(int i = 0 ; i < byteFile1.length ; i++){
temp = temp + byteFile1[i];
}
log.debug(temp);
log.debug("");
temp = "";
for(int i = 0 ; i < byteFile2.length ; i++){
temp = temp + byteFile2[i];
}
log.debug(temp);
flag = false;
}else{
//两个字节对象比较
for(int i = 0 ; i < byteFile1.length ; i++ ){
if(byteFile1[i] != byteFile2[i]){
log.debug(i + "----" + byteFile1[i]);
log.debug(i + "----" + byteFile2[i]);
flag = false;
}else{
}
}
}
return flag;
}
public static void dispatcher(HttpServletRequest request,
HttpServletResponse response,String url)
throws ServletException, IOException{
RequestDispatcher dispatcher =
request.getRequestDispatcher(url);
dispatcher.forward(request,response);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?