如何解决写入有条件的新文件
我正在尝试写入新文件并打印到屏幕。下面的代码可以打印到屏幕上,但如何有效地将内容写入新文件?
public static void allBBC(ArrayList<TvProgramme> programmes) {
for (TvProgramme prg : programmes) {
if (prg.getbroadcaster().equals("BBC")) {
System.out.println(prg.getProgrammeName());
}
File file2 = new File ("BBCProgrammes");
try {
FileWriter fw = new FileWriter(file2);
BufferedWriter bw = new BufferedWriter(fw);
} catch (IOException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
解决方法
public static void allBBC(ArrayList<TvProgramme> programmes) {
File file2 = new File ("BBCProgrammes");
try {
FileWriter fw = new FileWriter(file2);
BufferedWriter bw = new BufferedWriter(fw);
for (TvProgramme prg : programmes) {
if (prg.getBroadcaster().equals("BBC")) {
System.out.println(prg.getProgrammeName());
}
bw.write(prg.getProgrammName());
bw.newLine() // if you need a new line,otherwise everything will be in one line
}
bw.flush();
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
文件应该在循环之前创建,否则每次循环都会打开它。
write()
会将信息写入缓存。
flush()
将写入的信息从缓存写入文件。除非确实需要,否则不应刷新每一行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。