打印流

  PrintStream和PrintWriter是两个打印流,可以实现将Java基本数据类型的数据格式转化为字符串输出,引用类型的数据自动调用toString()。这两个类提供了一系列重载的print()和println()方法,用于多种数据类型的输出,用于不会抛出 I/O 异常。

  PrintStream和PrintWriter都可以指定编码方式。

一、PrintStream

  1、概述

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

  2、PrintStream 类

    java.io.PrintStream:打印流。

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

    PrintStream 特点:

      ① 只负责数据的输出,不负责数据的读取

      ② 与其他输出流不同,PrintStream 永远不会抛出 IOException

      ③ 有特有的方法,print,println;void print(任意类型的值);void println(任意类型的值并换行)

  3、构造方法

PrintStream(File file):输出的目的地是一个文件
PrintStream(File file, String csn):创建具有指定文件名称和字符集且不带自动行刷新的新打印流
PrintStream(OutputStream out):输出的目的地是一个字节输出流
PrintStream(String fileName) :输出的目的地是一个文件路径

  4、继承父类的成员方法

    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

     自己特有的方法:

 void print(boolean b) :打印 boolean 值。
void print(char c) :打印字符。
void print(char[] s):打印字符数组。
void print(double d) :打印双精度浮点数。
void print(float f):打印浮点数。
void print(int i):打印整数。
void print(long l):打印 long 整数。
void print(Object obj):打印对象。
void print(String s):打印字符串。
PrintStream printf(Locale l, String format, Object... args):使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。
PrintStream printf(String format, Object... args) :使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。
void println() :通过写入行分隔符字符串终止当前行。
void println(boolean x):打印 boolean 值,然后终止行。
void println(char x) :打印字符,然后终止该行。
void println(char[] x) :打印字符数组,然后终止该行。
void println(double x): 打印 double,然后终止该行。
void println(float x) :打印 float,然后终止该行。
void println(int x) :打印整数,然后终止该行。
void println(long x) :打印 long,然后终止该行。
void println(Object x):打印 Object,然后终止该行。
void println(String x) :打印 String,然后终止该行。

    注意:所有数据类型写出去,都是按照文本处理的。

  5、Demo

 public static void main(String[] args) throws FileNotFoundException {
System.out.println("HelloWorld"); // 在控制台打印输出 //创建打印流PrintStream对象,构造方法中绑定要输出的目的地
PrintStream ps = new PrintStream("E:\\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();
}

  6、改变输出目的地

 /*
可以改变输出语句的目的地(打印流的流向)
输出语句,默认在控制台输出
使用System.setOut方法改变输出语句的目的地改为参数中传递的打印流的目的地
static void setOut(PrintStream out)
重新分配“标准”输出流。
*/
public class DemoPrintStream {
public static void main(String[] args) throws FileNotFoundException {
System.out.println("我是在控制台输出"); PrintStream ps = new PrintStream("E:\\目的地是打印流.txt");
System.setOut(ps);//把输出语句的目的地改变为打印流的目的地
System.out.println("我在打印流的目的地中输出"); ps.close();
}
}

二、PrintWriter

  这个输出流主要应用于 JavaWeb 阶段,从服务器端往客户端返回消息时用到response,response.getWriter()可以返回PrintWriter对象。

  即Web服务器往客户端(例如:浏览器)返回html网页时,用的是PrintWriter对象的输出方法。

Java 之 打印流的更多相关文章

  1. 【java】打印流的基本实现及java.io.PrintStream、java.io.PrintWriter示例

    package 打印流; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impor ...

  2. Java基础IO类之打印流

    package IODemo; import java.io.*; /* 打印流 : 很方便的进行输出 字节打印流 增强输出功能 字符打印流 */ public class PrintStreamDe ...

  3. java 打印流(PrintStream)

    打印流(PrintStream):打印流可以打印任意类型的数据,而且打印流在打印数据之前会将数据转为字符串在进行打印 PrintStream可以接受文件和其他字节输出流,所以打印流是对普通字节输出流的 ...

  4. 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流

    ------- android培训.java培训.期待与您交流! ---------- File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递 ...

  5. java 21 - 12 IO流的打印流

    打印流 字节流打印流 PrintStream 字符打印流 PrintWriter打印流的特点: A:只有写数据的,没有读取数据.只能操作目的地,不能操作数据源.(只能写入数据到文件中,而不能从文件中提 ...

  6. Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)

    一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...

  7. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

  8. Java基础知识强化之IO流笔记60:打印流 之 改进复制文本文件的案例

    1. 使用打印流改进复制文本文件的案例 2. 代码示例: package cn.itcast_03; import java.io.BufferedReader; import java.io.Buf ...

  9. Java基础知识强化之IO流笔记59:打印流

    1. 打印流 (1)分类: • 字节打印流   PrintStream • 字符打印流   PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...

随机推荐

  1. openresty开发系列12--lua介绍及常用数据类型简介

    openresty开发系列12--lua介绍及常用数据类型简介 lua介绍  1993 年在巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de ...

  2. ES6深入浅出-5 新版对象-2.属性修饰符

    对象语法增强 已经有了个对象的新增语法 还需要一个api来做呢?. 因为有的时候,你需要在旧的对象上添加get.set. 读的时候就走get 写的时候就走set 假设很早之前在项目里写了一个old对象 ...

  3. Android webview 写入cookie的解决方法以及一些属性设置

    原文地址:https://www.2cto.com/kf/201703/616868.html Android webview 写入cookie的解决方法以及一些属性设置,webview怎么设置写入C ...

  4. NSGA,NSGA-II,Epsilon-MOEA,DE C语言Deb教授原版代码

    NSGA,NSGA-II,Epsilon-MOEA,Basic Differential Evolution (DE) C语言Deb教授原版代码地址 觉得有用的话,欢迎一起讨论相互学习~[Follow ...

  5. Python - Django - ORM 不常用字段

    BigAutoField(AutoField): bigint 自增列,必须填入参数 primary_key=True 如果没有写自增列,则会自动创建一个列名为 id 的列 SmallIntegerF ...

  6. JavaScript获取手机屏幕翻转方法

    /*屏幕翻转*/ window.addEventListener(window['onorientationchange'] ? 'orientationchange' : 'resize', fun ...

  7. 常见问题:Web/Servlet生命周期与Spring Bean生命周期

    Servlet生命周期 init()初始化阶段 Servlet容器加载Servlet(web.xml中有load-on-startup=1;Servlet容器启动后用户首次向Servlet发请求;Se ...

  8. js 验证手机号

    <script> var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/; function ver ...

  9. 数据挖掘经典算法PrefixSpan的一个简单Python实现

    前言 用python实现了一个没有库依赖的"纯" py-based PrefixSpan算法. Github 仓库 https://github.com/Holy-Shine/Pr ...

  10. 关于TV工厂菜单参数的具体说明

    1.ADC Adjust 此项是针对YPbPr.VGA端口进行处理的,在三路R/G/B或者YPb/Pr信号输入到芯片时候,由于存在硬件上的偏差,导致信号和标准信号存在偏差,需要对信号进行ADC校正.光 ...