系统学习 Java IO (十一)----打印流 PrintStream
PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象。 PrintStream 类可以格式化基本类型,如int,long等格式化为文本,而不是其字节值。 这就是为什么它被称为 PrintStream ,因为它将原始字节格式化为文本 - 就像它们在打印到屏幕(或打印到纸张)时看起来一样。
构造器
| 方法 | 描述 |
|---|---|
| PrintStream(File file) | 创建具有指定文件且不带自动行刷新的新打印流。 |
| PrintStream(File file, String csn) | 创建具有指定文件名称和 csn 字符集且不带自动行刷新的新打印流。 |
| PrintStream(String fileName) | 创建具有指定文件名称且不带自动行刷新的新打印流。 |
| PrintStream(String fileName, String csn) | 创建指定名称和字符集且不带自动行刷新的打印流 |
| PrintStream(OutputStream out) | 创建新的打印流。out - 将向其打印值和对象的输出流 |
| PrintStream(OutputStream out, boolean autoFlush) | autoFlush - boolean 变量;如果为 true,则每当写入 byte 数组、调用其中一个 println 方法或写入换行符或字节 ( '\n') 时都会刷新输出缓冲区 |
| PrintStream(OutputStream out, boolean autoFlush, String encoding) | 同上,同时指定字符集 |
常见方法
| 方法 | 描述 |
|---|---|
| void print(Xxx x) | 可以打印指定类型的数据 |
| PrintStream append(char c) | 将指定字符添加到此输出流。 |
| PrintStream append(CharSequence csq, int start, int end) | 添加指定字符序列,后两个参数可选 |
| PrintStream format(String format, Object... args) | 使用指定格式字符串和参数将格式化字符串写入此输出流中。 |
| println(Xxx x) | 打印完,然后换行。 |
| void write(int b) | 将指定的字节写入此流。 |
PrintStream 方便的提供了重载的 print() 方法。
看一个例子:
PrintStream printStream = new PrintStream(new FileOutputStream("D:\\test\\1.txt"));
printStream.print(true);
printStream.print(" print ");
printStream.print((int)123);
printStream.print('&');
printStream.print((float) 123.456);
printStream.close();
输出结果为 true print 123&123.456
System.out 和 System.err 就是 PrintStreams
我们很熟悉这两个众所周知的 PrintStream 实例:System.out 和 System.err,所以我们早就在使用 PrintStream 了。
PrintStream 类包含强大的 format() 和 printf() 方法(它们完全相同,但 C 程序员更熟悉名称“printf”)。 这些方法允许使用格式化字符串以非常高级的方式混合文本和数据。如 System.out.format("Text + data: %d", 123); 其他高级用法可以查 JavaDoc 。
close()
用完要关闭,关闭 PrintStream 系统会同时关闭对应的包装流,如上例,不需要单独关闭 FileOutputStream 。建议使用 try-with-resources 。
系统学习 Java IO (十一)----打印流 PrintStream的更多相关文章
- 系统学习 Java IO (六)----管道流 PipedInputStream/PipedOutputStream
目录:系统学习 Java IO---- 目录,概览 PipedInputStream 类使得可以作为字节流读取管道的内容. 管道是同一 JVM 内的线程之间的通信通道. 使用两个已连接的管道流时,要为 ...
- 系统学习 Java IO (十)----回退流 PushbackInputStream
目录:系统学习 Java IO---- 目录,概览 PushbackInputStream 旨在从 InputStream 解析数据时使用. 有时您需要先读取几个字节以查看将要发生的事情,然后才能确定 ...
- 系统学习 Java IO (八)----装饰流 FilterInputStream/FilterOutputStream
目录:系统学习 Java IO---- 目录,概览 这两个流的作用是:"封装其它的输入流,并为它们提供额外的功能" 他们的直接子类有: BufferedInputStream 的作 ...
- 系统学习 Java IO (九)----缓冲流 BufferedInputStream/BufferedOutputStream
目录:系统学习 Java IO---- 目录,概览 BufferedInputStream BufferedInputStream 类为输入流提供缓冲. 缓冲可以加快IO的速度. BufferedIn ...
- 系统学习 Java IO ---- 目录,概览
Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.h ...
- 系统学习 Java IO (一)----输入流和输出流 InputStream/OutputStream
目录:系统学习 Java IO ---- 目录,概览 InputStream 是Java IO API中所有输入流的父类. 表示有序的字节流,换句话说,可以将 InputStream 中的数据作为有序 ...
- 系统学习 Java IO (七)----字节数组流 ByteArrayInputStream/ByteArrayOutputStream
目录:系统学习 Java IO---- 目录,概览 ByteArrayInputStream 如果数据存储在数组中,ByteArrayInputStream 可以很方便读取,它可以返回 InputSt ...
- 系统学习 Java IO (五)----使用 SequenceInputStream 组合多个流
目录:系统学习 Java IO---- 目录,概览 SequenceInputStream 可以将两个或多个其他 InputStream 合并为一个. 首先,SequenceInputStream 将 ...
- 系统学习 Java IO (十二)----数据流和对象流
目录:系统学习 Java IO---- 目录,概览 DataInputStream/DataOutputStream 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型. 要想使用 ...
随机推荐
- 2-2 Consul注册注销流程
铺垫,创建健康检查方法,Consul服务器隔一段时间请求一下webapi里的一个方法,如果这个方法没有问题,则证明这个webapi还在正常工作,这个webapi提供的服务就存在.如果方法没有返回,或者 ...
- 张忠谋:3nm制程会出来 2nm后很难(摩尔定律还可维持10年)
集微网消息,台积电董事长张忠谋表示,摩尔定律可能还可再延续10年,3nm制程应该会出来,2nm则有不确定性,2nm之后就很难了. 张忠谋表示,1998年英特尔总裁贝瑞特来台时,两人曾针对摩尔定律还可延 ...
- Font Awesome Text 使用方法
<!-- basic text--> <com.beardedhen.androidbootstrap.FontAwesomeText android:layout_width=&q ...
- [视频]产品营销之拍出好电子产品,Peter Belanger是如何为苹果产品拍照的
Peter Belanger –他就是那些颠覆你想象的苹果产品照片的摄影师.作为旧金山的顶级产品图片设计师的 Peter,他还拥有 eBay, Nike, Pixer 和 Square 等客户. 让我 ...
- CSharp获取图形文件的读写
C#是微软发布了一个面向对象.开展对.NET Framework上述高级编程语言.并定于占领在微软开发者论坛(PDC)在首演. C#这是微软研究员Anders Hejlsberg最新成就.C#容貌Ja ...
- 关于Qt的事件循环以及QEventLoop的简单使用(QEventLoop::quit()能够终止事件循环,事件循环是可以嵌套的)
http://www.cnblogs.com/-wang-cheng/p/4973021.html 1.一般我们的事件循环都是由exec()来开启的,例如下面的例子: 1 QCoreApplicato ...
- 为什么腾讯总能做出好产品?(在互联网行业,往往仅凭一个关键产品就足以改变整个公司的格局)MSN失败在不以用户体验为中心
投递人 itwriter 发布于 2017-07-10 11:16 评论(36) 有3401人阅读 原文链接 [收藏] « » 本文来自微信公众号“郑志昊 Peter”,作者李翔.郑志昊:博客园经授权 ...
- CORS 专题
CORS(跨域资源共享,Cross-Origin Resource Sharing)CORS其实出现时间不短了,它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web ...
- linux 用蓝牙和手机通信
加载模块: # modprobe hci_usb # modprobe rfcomm # hciconfig hci0 up # hciconfig hci0 up 查看状况: # hci ...
- 微信小程序把玩(三)tabBar底部导航
原文:微信小程序把玩(三)tabBar底部导航 tabBar相对而言用的还是比较多的,但是用起来并没有难,在app.json中配置下tabBar即可,注意tabBar至少需要两个最多五个Item选项 ...