系统学习 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 数据类型. 要想使用 ... 
随机推荐
- STL algorithm算法lexicographical_compare(30)
			lexicographical_compare原型: std::lexicographical_compare default (1) template <class InputIterator ... 
- matlab 高级函数
			2*randn(sz):0 均值,方差为 4(variance), standard deviation:标准差为 2: numel():returns the # of elements: nume ... 
- python3使用多代理访问网站
			#------------------------------------------------------------------------------- # Name: module1 # P ... 
- android 如何使用jar替换java代码编译
			1. 第一次全编译project(随机eng/user),然后保存,以取代java代码jar包,在alps/out/target/common/obj/JAVA_LIBRARIES/xxx__inte ... 
- Swift 开源那点事儿
			最近各大网站上最喜大普奔的新闻莫过于 Swift 正式开源这条了.这无疑是一个里程碑式的前进,苹果也向开源社区更加进了一步.那么 Swift 开源后有什么具体的改变呢,我们一一道来. 成立开源社区 s ... 
- Binding的详细说明
			<DataGridTextColumn Width="*" Header=" 组合规则名称 " Binding="{Binding ComRul ... 
- 日志文件  清理or压缩
			1.操作前请断开所有数据库连接. 2.分离数据库 分离数据库:企业管理器->服务器->数据库->cwbase1->右键->分离数据库 分离后,cwbase1数据库被删除, ... 
- 读BeautifulSoup官方文档之与bs有关的对象和属性(2)
			上一节说到tag, 这里接着讲, tag有个属性叫做string, tag.string其实就是我们要掌握的四个对象中的第二个 ---- NavigableString, 它代表的是该tag内的te ... 
- Redis进阶实践之十八 使用管道模式提高Redis查询的速度
			原文:Redis进阶实践之十八 使用管道模式提高Redis查询的速度 一.引言 学习redis 也有一段时间了,该接触的也差不多了.后来有一天,以为同事问我,如何向redis中 ... 
- Win10《芒果TV》更新v3.8.40青春版:优化推送策略、新增缓存清理
			芒果TV暑期重磅活动-青春芒果节拉开帷幕,炫酷的3D视觉大秀.王牌IP互动体验馆.众星云集的青春炙燥夜晚会.神秘的芒果吉祥物发布,Win10版<芒果TV>全平台同步更新青春版v3.8.40 ... 
