系统学习 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 数据类型. 要想使用 ...
随机推荐
- https学习笔记
HTTPS协议 HTTPS可以认为是HTTP + TLS.HTTP协议大家耳熟能详了,目前大部分WEB应用和网站都是使用HTTP协议传输的.TLS是传输层加密协议,它的前身是SSL协议,最早由nets ...
- DDD实战8_1 实现对领域中连接字符串的可配置
1.在webapi的配置文件中配置连接字符串节 2.在webapi的startup类中的Configure方法中 将工具类里面AppSetting的静态Section的值 对应上webapi的配置文件 ...
- 右键计算机->属性->高级系统设置->高级->环境变量,添加环境变量(推荐)
(1)右键计算机->属性->高级系统设置->高级->环境变量,添加环境变量(推荐) QTDIR:D:\Software\Qt\Qt5.2.0\5.2.0\msvc2010_op ...
- python中的验证码识别库PyTesser
PyTesser PyTesser is an Optical Character Recognition module for Python. It takes as input an image ...
- 一种基于HBase韵海量图片存储技术
针对海量图片存储,已有若干个基于Hadoop的方案被设计出来.这些方案在系统层小文件合并.全局名字空间以及通用性方面存在不足.本文基于HBase提出了一种海量图片存储技术,成功解决了上述问题.本文将介 ...
- matlab 微积分
符号变量,symbolic variable 1. 高阶导数 高阶导数的计算,当然可以用手工的方式,但显然这种机械重复的推导,更适用于计算机的计算方式: f(x)=sinxx2+4x+3⇒d4fdx4 ...
- Matlab Tricks(二十三)—— 保存图像到 pdf
printme = @(txt) print('-dpdf', sprintf('figures/Example_%s',txt)); % 该匿名函数的接受的参数为字符串类型,也即欲保存的文件名: % ...
- Android Intent传递对象摘要
效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaG9uZ3NoZW5ncGVuZw==/font/5a6L5L2T/fontsize/400/fil ...
- iTerm - 让你的 MAC 命令行更加丰富多彩
今天要给大家介绍一个工具: iTerm.这次我们讲的和开发技术无关,只是一个工具.但虽然是一个工具,却能让你的功力提升一个层级.下面我们就来一看究竟.每一位开发者都难免要用到命令行,从 git 版本库 ...
- 就服务器项目部署debug谈谈自己的感受
前言 学校小组Project那些外国人啥也不会, 基本上我一个人全包了前端和后端, 说实话这些天来也感受到了写一个比较拿得出手的web确实也不是这么容易的, 特别是我没什么项目经验, 很多时候碰到问题 ...