PrintWriter中的write与println方法居然就是这些区别
?
?PrintWriter在以下以pw代替,在上面的程序中,用pw.println(str)可以把數據發送到文件,而pw.write(str)也行,不過就是沒有換行!難道他們就是這點差別嗎?這點疑問要好好琢磨一下。
查看源碼發現:
? ? pw.println(str)方法是由write方法與println()方法組成,頁println()方法中執行了newLine()方法。
? ?而 newLine()實現中有一條out.write(lineSeparator);
? ? 即println(str)方法比write方法中多輸出了一個lineSeparator行分隔符;?
? ?其中lineSeparator實現為;lineSeparator = (String) java.security.AccessController.doPrivileged(new sun.security.action.GetPropertyAction("line.separator"));
? ?而line.separator屬性跟據每個系統又是不一樣的。
? ?println()方法的注釋說明中提到:
??
? ?----------------
上述引用重點在于不是簡單的加上\r\n 之類的轉義來替換 上述提到的lineSeparator。
如果一定要用write(),就必須使用write()+println()的組合。
當然給flush()的還是要flush.除非你在構造的時候就已經對autoFlush進行了初始化為true的操作
轉載于:https://www.cnblogs.com/ltb6w/p/8151736.html
總結
以上是生活随笔為你收集整理的PrintWriter中的write与println方法居然就是这些区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Phaser小站
- 下一篇: centos7安装svn服务