记录学习java反射

public class DesTest {
	public static void main(String[] args) throws Exception {
		
		// TODO Auto-generated method stub
	    //加载配置文件
		Properties pro = new Properties();
	    ClassLoader loader = DesTest.class.getClassLoader();
	    pro.load( loader.getResourceAsStream("pro.properties"));
	    
	    
	    //获取文本名和工具类名
	    String test = pro.getProperty("test");
		String classname = pro.getProperty("className");
		String methodname = pro.getProperty("methodName");
		
		
		//反射部分
	    //加载工具类进内存
		Class utils_class =  Class.forName(classname);
		//创建工具类实例对象
		Object obj =  utils_class.newInstance();
	    //获取方法对象
		Method method =  utils_class.getMethod(methodname, String.class);
		//执行方法
		//String result = (String) method.invoke(obj,test);
		System.out.println( method.invoke(obj,test));

配置文件pro.properties

test=e:\\ming.txt
className=demo.Uitls
methodName=getStudents

工具类Uitls

public class Uitls {
	public String getErJingZhi(String path){
		FileInputStream fis = null;
		try {
			fis = new FileInputStream(new File(path));
			StringBuffer result = new StringBuffer();
			int temp,len;
			while((temp = fis.read()) != -1){ 
				char[] t = Integer.toBinaryString(temp).toCharArray();
				if((len = 8 - t.length) > 0){
				    for(int j=len;j > 0;--j){
				    	result.append("0");
				    }
				}
				result.append(String.valueOf(t));
			}
			return new String(result);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(fis != null){
				try {
					fis.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return null;
	}
}

以上是使用java的反射机制实现将从文件中得到的内容转化为二进制并输出

你可能感兴趣的:(java,反射)