第1个回答 推荐于2017-10-09
你的理解是对的,没什么区别,要格式化也可以用 String.format() 。
不过感觉上 println() 打印出来的换行符是根据平台来的,比如 Windows 是 "\r\n" Linux 是 "\n" 。但事实上这个功能也可以用 BufferedWriter.newLine() 来实现。本回答被提问者采纳
第2个回答 2013-12-11
PrintWriter提供的print/println/printf等方法方便使用。
第3个回答 2021-08-22
我先问你个问题,一般Writer和Reader都是成对出现的,例如FileWriter和FileRead,InputStreamReader和OutputStreamWriter,BufferedReader和BufferedWriter等等,为啥只有PrintWriter,没有PrintReader呢?
其一,因为Print这个词,print是打印的意思,它是专注于写,他就像一个打印机一样,无论是写到控制台,还是写到文件,它的任务是写,而不像其他成对出现的一样,一个负责读一个负责写。
其二,它的出现,是真正意义上的实现了跨平台的写一个换行,因为windows换行是\r\n,mac是\r,linux是\n,PrintWrite的println(),可以根据不同平台,自动帮你搞定
其三,BufferedWriter的writeline()也可以实现其二,但是它的构造函数参数是啥呢?是Writer,也就是你使用BufferedWrite,需要传一个Writer接口类型的类,而PrintWriter刚好也是实现了Writer。又回到了我所说的其一,如果是单纯的只是为了写,那么PrintWriter是最方便的,无论写数据,还是写换行,你只需要 new PrintWriter(file or fileName)即可,而不在是new BufferedWriter(new xxxWriter())一层层包装
现在知道区别了吧~