您的位置:首页 > 职场人生

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

2014-01-13 15:36 459 查看
----------------------
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而不是直接使用File
PrintWriter 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: