//写入数据到文本文件
public static void writeData(){
File file = new File(examPath);
for (File listFile : file.listFiles()) {
listFile.delete();
}
for (Exam exam : exams) {
String data = "";
for (Question question : exam.getQuestions()) {
data += question + "\n";
}
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(examPath + "/" + exam.getName() + ".txt"));
bw.write(data);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
String data = "";
for (Student student : students) {
data += student.getName() + " " + student.getSno() + " " + student.getMajor() + " " + student.getClassName() + " " + student.getScore() + " " + student.getComment() + "\n";
}
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(studentPath));
bw.write(data);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
有没有愿意解释一下这段代码
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- unbounded3 2023-01-03 20:17关注
第四行,首先创建一个File实例,路径为字符串examPath里的路径
第五行的for循环里,是先把file指向的文件夹里的所有文件遍历出来,并且删除(一句话就是把该文件夹里的所有东西删了)
第九行,看样子Exam是一个实体类,然后是循环遍历exams(我估计它是list),然后用data把Exam实体存的Question都记录下来,try-catch里做的是:在examPath这个路径下新建一个txt文件,文件名取决于Exam实体里的name,同时把之前data里的数据写入到这个txt里
第23行开始,做的事跟第九行到第二十一行做的差不多。首先还是定义一个data,然后循环遍历集合students,集合里放的是Student实体,然后data记录每一个实体里的数据,包括name、sno、major等,每一行记录一个实体类的数据,大概就是下面酱紫,
name1 sno1 major1 className1 score1 comment1 name2 sno2 major2 className2 score2 comment2
然后还是用字符流,新建一个文件,路径是studentPath,这个应该是绝对路径,然后把data里的数据写进去,最后调用close关闭流,结束
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 Centos7 / PETGEM
- ¥15 csmar数据进行spss描述性统计分析
- ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
- ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
- ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
- ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
- ¥15 运动想象脑电信号数据集.vhdr
- ¥15 三因素重复测量数据R语句编写,不存在交互作用
- ¥15 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗