我要實現將寫在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()也很重要