通用框架小案例(将类成员变量存入文件中)

115 阅读1分钟
package run;


import java.io.FileOutputStream;
import java.io.PrintStream;
import java.lang.reflect.Field;

public class Mybatis {
    public static void save(Object obj){

        try (
                //创建打印流对象
                PrintStream ps =new PrintStream(new FileOutputStream("F:\JavaProject\Project\src\app.txt",true))
                ){
            //获取当前类的类对象
            Class c = obj.getClass();  //c.getSimpleName(获取当前类名)  c.getName(获取权限名 包名+类名)
            ps.println("-----------" + c.getSimpleName() + "------------");//获取当前类名
            Field[] fields = c.getDeclaredFields();//获取当前类所有的成员变量对象
            for (Field field : fields) {//遍历成员变量对象
             String name = field.getName();//获取成员变量的名字
             field.setAccessible(true);//暴力反射打开权限
             String value = field.get(obj) + "";//获取成员变量的值 + "" 将值都转成字符串
             ps.println(name + "=" + value);//将对象数据打印到文件中
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
package run;



public class FileDemo {
    public static void main(String[] args) {
        Student student = new Student("孙悟空",10000,155.0,"斜月三星洞");
        Mybatis.save(student);
        Teacher teacher = new Teacher("菩提老祖",10000000,175.0,"斜月三星洞");
        Mybatis.save(teacher);
    }

}