我要实现将写在Console上的内容保存在一个文件里,就是控制台记录器
先看这个
public static void main(String[] args) { Scanner s = new Scanner(System.in); String text = s.nextLine(); Class clazz; try { clazz = Class.forName("com.mingrisoft.RecordConsole"); FileWriter f = new FileWriter("E:\\"+clazz.getSimpleName()+".txt"); f.write(text); System.out.println("成功"); } catch (ClassNotFoundException e1) { e1.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } }
已走到"成功",而文件是空的
当我加上fileWriter.flush()后
public static void main(String[] args) { Scanner s = new Scanner(System.in); String text = s.nextLine(); Class clazz; try { clazz = Class.forName("com.mingrisoft.RecordConsole"); FileWriter f = new FileWriter("E:\\"+clazz.getSimpleName()+".txt"); f.write(text); System.out.println("成功"); f.flush(); } catch (ClassNotFoundException e1) { e1.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } }
说明flush()很重要
关于flush,如果此流已保存缓冲区中各种write()方法的任何字符,则立即将它们写入预期目标,如果该目标是另一个字符或字节流则刷新,这就是为什么文件内容不是添加,而是只有一条最新运行的。
close()前会自动执行flush()
写上close()也很重要
时间: 2024-10-08 09:46:10