打印流

打印流

平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式。

java.io.PrintStream

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

PrintStream特点:

  • 只负责数据的输出,不负责数据的读取
  • 与其他输出流不同,PrintStream 永远不会抛出 IOException
  • 有特有的方法,print,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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Demo01PrintStream {
public static void main(String[] args) throws FileNotFoundException {
//System.out.println("HelloWorld");
//创建打印流PrintStream对象,构造方法中绑定要输出的目的地
PrintStream ps = new PrintStream("10_IO\\print.txt");
//如果使用继承自父类的write方法写数据,那么查看数据的时候会查询编码表 97->a
ps.write(97);
//如果使用自己特有的方法print/println方法写数据,写的数据原样输出 97->97
ps.println(97);
ps.println(8.8);
ps.println('a');
ps.println("HelloWorld");
ps.println(true);

//释放资源
ps.close();
}
}

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

输出语句默认在控制台输出

使用System.setOut方法改变输出语句的目的地改为参数中传递的打印流的目的地

static void setOut(PrintStream out):重新分配“标准”输出流

1
2
3
4
5
6
7
8
9
public class Demo02PrintStream {
public static void main(String[] args) throws FileNotFoundException {
System.out.println("我是在控制台输出");
PrintStream ps = new PrintStream("10_IO\\目的地是打印流.txt");
System.setOut(ps);//把输出语句的目的地改变为打印流的目的地
System.out.println("我在打印流的目的地中输出");
ps.close();
}
}

打印流
http://example.com/2023/06/26/Java/JavaIO/5. 打印流,PrintStream/
作者
PALE13
发布于
2023年6月26日
许可协议