public static String getImageStr(String imgFile) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
//String imgFile = "d:\\111.jpg";// 待处理的图片
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try {
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);// 返回Base64编码过的字节数组字符串
}
/**
* 将字符串转为图片
* @param imgStr
* @return
*/
public static boolean generateImage(String imgStr,String imgFile)throws Exception {// 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) // 图像数据为空
return false;
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
String imgFilePath = imgFile;// 新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
throw e;
}
}
升级ADT后。把换来的工程除了asset,res,src,jni目录,和AdnroidManifest.xml其他的都可删除
注意:老工程在生成新工程前不能放到新的工作空间,否则老工程生不成新工程。
测试私有(private)的方法有两种:
1)把目标类的私有方法(修饰符:private)修改为(public),不推荐,因为修改了源程序不佳
2)通过反射 (推荐)
代码演示:
目标程序
PrivateMethod.java
package com.junit3_8;
public class PrivateMethod {
//私有方法
private int add(int a, int b)
{
return a +b ;
}
}
测试程序
PrivateMethodTest.java
package com.junit3_8;
import java.lang.reflect.Method;
import junit.framework.Assert;
import junit.framework.TestCase;
public class PrivateMethodTest extends TestCase {
public void testAdd() throws Exception
{
//PrivateMethod pm = new PrivateMethod();
//获取目标类的class对象
Class<PrivateMethod> class1 = PrivateMethod.class;
//获取目标类的实例
Object instance = class1.newInstance();
//getDeclaredMethod() 可获取 公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
//getMethod() 只可获取公共的方法
Method method = class1.getDeclaredMethod("add", new Class[]{int.class,int.class});
//值为true时 反射的对象在使用时 应让一切已有的访问权限取消
method.setAccessible(true);
Object result = method.invoke(instance, new Object[]{1,2});
Assert.assertEquals(3, result);
}
}
小结:
getDeclaredMethod() 可获取 公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
getMethod() 只可获取公共的方法
Method method = class1.getDeclaredMethod("add", new Class[]{int.class,int.class});
等价于
Method method = class1.getDeclaredMethod("add", new Class[]{Integer.TYPE,int.Integer.TYPE});
因为 Integer.TYPE 表示基本类型 int 的 Class 实例
原文连接:http://blog.csdn.net/hzc543806053/article/details/7340546