动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

源码分析IO打印流

05-26 17:28 650浏览
举报 T字号
  • 大字
  • 中字
  • 小字

IO打印流可以很方便的将对象的toString()方法输出,并且加上自动换行,而且可以自动刷出的模式,这也是其名字的由来。

PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。它还提供其他两项功能。与其他输出流不同,PrintStream 永远不会抛出 IOException;而是,异常情况仅设置可通过 checkError 方法测试的内部标志。另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 ('\n')。

打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式.

java.io.PrintStream:打印流,PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。

PrintStream特点:

1.只负责数据的输出,不负责数据的读取
2.与其他输出流不同,PrintStream 永远不会抛出 IOException
3.有特有的方法,print,println

  • void print(任意类型的值)
  • void println(任意类型的值并换行)

构造方法:

PrintStream(File file):输出的目的地是一个文件
PrintStream(OutputStream out):输出的目的地是一个字节输出流
PrintStream(String fileName) :输出的目的地是一个文件路径

PrintStream extends OutputStream

继承自父类的成员方法:

- public void close() :关闭此输出流并释放与此流相关联的任何系统资源。

- public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。

- public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。

- public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。

- public abstract void write(int b) :将指定的字节输出流。

注意:

如果使用继承自父类的write方法写数据,那么查看数据的时候会查询编码表 97->a;

如果使用自己特有的方法print/println方法写数据,写的数据原样输出 97->97。

可以改变输出语句的目的地(打印流的流向)

输出语句,默认在控制台输出
使用System.setOut方法改变输出语句的目的地改为参数中传递的打印流的目的地
static void setOut(PrintStream out)
重新分配“标准”输出流。

打印流根据流的分类:

字节打印流 PrintStream
字符打印流 PrintWriter
方法:
void print(String str): 输出任意类型的数据,
void println(String str): 输出任意类型的数据,自动写入换行操作

代码演示:

 /* 
 * 需求:把指定的数据,写入到printFile.txt文件中
 * 
 * 分析:
 * 	1,创建流
 * 	2,写数据
 * 	3,关闭流
 */
public class PrintWriterDemo {
	public static void main(String[] args) throws IOException {
		//创建流
		//PrintWriter out = new PrintWriter(new FileWriter("printFile.txt"));
		PrintWriter out = new PrintWriter("printFile.txt");
		//2,写数据
		for (int i=0; i<5; i++) {
			out.println("helloWorld");
		}
		//3,关闭流
		out.close();
	}
}

打印流,顾名思义,其实就是打印字符的流,PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类。 尽管本文对于打印流讲解的已经很详细了,但是难免还有疏漏的地方,同学们可以观看动力节点在线的免费视频课程查漏补缺。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵498
程序员代码小兵498

153篇文章贡献528999字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消