介绍
今天就跟大家聊聊有关如何在Java中利用反射读取文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
Java反射
/* * ,*实现该接口中的方法,本来打算在FileUtils中调用该方法来生成实体对象,现已使用反射实现 ,* @param & lt; E> ,*/public interface  Readable由于在方法中使用了泛型,想要调用某个自定义的方法,就只能规定泛型的类要实现某个接口,这样就可以直接调用接口中的方法。
<代码>下面是我的文件读取方法代码>/* * *,才能从文件中读取所需要的数据,并自动生成类对象添加到列表中 *,才能@param tailPath 文件的名字(须带扩展名) *,才能@param clazz 列表中存储对象的类对象 *,才能@param paramType 所存入的对象的构造函数的参数的类对象(该构造函数不能被私人或保护修饰) *,才能@param & lt; T>,列表中的泛型,也就是列表中存储对象的类型 *,才能@return 通过读取文件所得到的列表对象 *,才能@throws IOException *,才能@throws IllegalAccessException *,才能@throws InstantiationException *,才能@throws InvocationTargetException *,才能@throws NoSuchMethodException ,*/,public static & lt; T  extends Readable祝辞,MyList ,阅读(String tailPath, Class , clazz,,类[],paramType) ,,throws IOException, IllegalAccessException,, InstantiationException,, InvocationTargetException, NoSuchMethodException {//才能,basePath要读取文件的文件夹路径 String 才能;path =, basePath +,“\ \”, +, tailPath;//,才能创建一个文件流 BufferedReader 才能;br =, new BufferedReader (new FileReader(路径));//才能,这个MyArrayList是我自己写的一个顺序表,可直接替换成java提供的ArrayList MyList<才能;T>, list =, new MyArrayList<在();//才能,通过方法传入的类和参数列表获取类的构造方法 Constructor<才能;T>, constructor =, clazz.getConstructor (paramType);//才能,新的一个对象数组来存放读取的数据(存放构造函数的参数) 对象[],才能objs =, new 对象(paramType.length); String 才能;str =,空;//才能,没有读到文件的尾部就一直读取文件 while 才能;((str =, br.readLine ()), !=, null), { ,,//,读取到的字符串以空格分隔 ,,String [], data =, str.split (“,“); ,,for (int 小姐:=,0;小姐:& lt;, paramType.length;我+ +),{ ,,//,构建构造函数的参数 ,,,Object o =, paramType[我].getConstructor (String.class) .newInstance(数据[我]); ,,,obj[我],=,o; ,,}//,,,通过调用之前获取到的构造方法来创建泛型对象 ,,T T =, constructor.newInstance (obj); ,,list.add (t); ,,}//,才能关闭文件流 br.close才能(); return 才能;列表; ,} 看完上述内容,你们对如何在Java中利用反射读取文件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
如何在Java中利用反射读取文件