黑马程序员-----IO之打印流

来源:互联网 发布:苹果笔记本装mac系统 编辑:程序博客网 时间:2024/06/04 07:25
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

打印流包含两个类:PrintStream和PrintWriter。

1.PrintStream
PrintStream为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。PrintStream打印的所有字符都使用平台的默认字符编码转换为字节。
与其他输出流不同,PrintStream永远不会抛出IOException。
构造器:

PrintStream(File file):创建具有指定文件且不带自动行刷新的新打印流。
PrintStream(String fileName):创建具有指定文件名称且不带自动行刷新的新打印流。

PrintStream(OutputStream out):创建新的打印流。
PrintStream(OutputStream out, boolean autoFlush):创建新的打印流。如果autoFlush为 true,则每当写入 byte 数组、调用其中一个println方法或写入换行符或字节 ('\n') 时都会刷新输出缓冲区。

可见,PrintStream的构造器中可以传入File、文件路径字符串和字节输出流。

方法:
多个重载的println(参数)方法,参数可以是多种类型。
public class PrintDemo {public static void main(String[] args) {//PrintStream不会抛出异常//可以自动刷新的PrintStream,输出目标是控制台PrintStream ps = new PrintStream(System.out, true);//可以自动刷新ps.println("hello java");ps.close();}}




2.PrintWriter
PrintWriter向文本输出流打印对象的格式化表示形式。
PrintWriter永远不会抛出IOException。
构造器:

PrintWriter(File file):使用指定文件创建不具有自动行刷新的新 PrintWriter。
PrintWriter(String fileName):创建具有指定文件名称且不带自动行刷新的新 PrintWriter。

PrintWriter(OutputStream out):根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush):通过现有的 OutputStream 创建新的 PrintWriter。如果为autoFlush为true,则println、printf或format方法将刷新输出缓冲区。

PrintWriter(Writer writer):创建不带自动行刷新的新 PrintWriter。
PrintWriter(Writer writer, boolean autoFlush):创建新 PrintWriter。如果为autoFlush为true,则println、printf或format方法将刷新输出缓冲区。

可见,PrintStream的构造器中可以传入File、文件路径字符串、字节输出流和字符输出流。

方法:
多个重载的println(参数)方法,参数可以是多种类型。
public class PrintDemo2 {public static void main(String[] args) throws IOException {//将键盘输入的内容保存到文件中BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));//使用自动刷新的PrintWriter//因为只有构造器是PrintWriter(OutputStream out, boolean autoFlush)才有自动刷新//所以使用FileOutputStream而不是直接使用FilePrintWriter pw = new PrintWriter(new FileOutputStream("e:\\demo.txt"), true);String line = null;while((line = bufr.readLine()) != null){if("over".equals(line))break;pw.println(line);}pw.close();}}



---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
0 0
原创粉丝点击