现有一个员工类,定义如下:
员工工号 整型数字
员工姓名 字符串
员工生日 日期类型
员工年龄 整型数字
员工性别 布尔型数字
员工籍贯 字符串
1.请随机定义10个员工,并设定相应的信息
然后将该10位员工信息写入一个csv文件,注意字符编码,不使用额外的三方工具包和依赖。
2.将1中生产的staff.dat文件当成数据库文件,当输入一个员工工号的时候,从该文件读取并查找到员工的信息,并以类的方式展现。
3.给定任意一个pojo类,创建该类的实例对象并赋值,请通过反射的方式获取到对象的所有属性,并保存到csv文件中,csv文件第一行是列名,用该类的属性名作为列名,csv文件名就是类名
读取csv文件的文件名和内容,并通过反射的方式来创建对应类的实例
已解决。
我看了一下,有三个小问题,您是三个问题都不知道该怎么写吗,还是说只有某一个问题不知道该怎么写呢?
public class Test {
public static void main(String[] args) throws Exception {
findById(9);
}
// 通过ID查找员工信息
private static void findById(int id) throws Exception {
Scanner sc = new Scanner(new FileInputStream("staff.csv"));
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] strArr = line.split(",");
if (Integer.parseInt(strArr[0]) == id) {
System.out.println(line);
break;
}
}
}
// 将数据写入到 staff.csv 中
private static void writeData() throws Exception {
Staff[] staffs = {
new Staff(1, "张三", new Date(), 10, true, "北京"),
new Staff(2, "李四", new Date(), 10, true, "上海"),
new Staff(3, "王五", new Date(), 10, true, "广州"),
new Staff(4, "马六", new Date(), 10, true, "深圳"),
new Staff(5, "老王", new Date(), 10, true, "南京"),
new Staff(6, "老张", new Date(), 10, true, "杭州"),
new Staff(7, "老吴", new Date(), 10, true, "西安"),
new Staff(8, "老钱", new Date(), 10, true, "成都"),
new Staff(9, "老陈", new Date(), 10, true, "浙江"),
new Staff(10, "老李", new Date(), 10, true, "曹县"),
};
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
PrintStream out = new PrintStream("staff.csv");
for (Staff staff : staffs) {
out.printf("%d,%s,%s,%d,%s,%s\n", staff.id, staff.name, format.format(staff.birthday), staff.age, staff.sex ? "男":"女", staff.nativePlace);
}
}
}
class Staff {
int id;
String name;
Date birthday;
int age;
boolean sex;
String nativePlace;
public Staff(int id, String name, Date birthday, int age, boolean sex, String nativePlace) {
this.id = id;
this.name = name;
this.birthday = birthday;
this.age = age;
this.sex = sex;
this.nativePlace = nativePlace;
}
}
你可以参考一下这个,还有啥问题,希望你可以具体提出来。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632