打印流

  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. java获取全部子类或接口的全部实现

    在JAVA中,获取一个类的全部父类是比较简单的,只需要通过反射(Class的getSuperclass()方法)即可.然而,如果想获得一个类的所有子类,或者获得实现某一个接口的所有实现类,相对比较麻烦 ...

  2. Spring cloud微服务安全实战-4-3常见的微服务安全整体架构

    整体架构 这个图适合中小公司.麻雀虽小 五脏俱全.微服务架构所需要做的事在这个图里基本都有了. 绿色的不讲,主要讲的是这三块(橘黄色的).后面的和运维相关,会讲,不会讲的太深 订单服务 首先来写一个订 ...

  3. 【Redis】Redis 主从模式搭建

    主从模式介绍 Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据 ...

  4. websehll的使用和预防措施

    (1).webshell概念 webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将asp或php后 ...

  5. ubuntu18.04手动安装二进制MySQL8.0

    wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz tar xvJf ...

  6. 原生JavaScript常用本地浏览器存储方法二(cookie)

    JavsScript Cookie概述 cookie是浏览器提供的一种机制,它将document对象的cookie属性提供给JavaScript.可以由JavaScript对其进行控制,而并不是Jav ...

  7. iOS-UIPasteboard的使用

    剪贴板的使用以及自定义剪贴板. 系统剪贴板的直接调用 其实整个过程非常的简单,我就用我写的一个自定义UILable来说明调用系统剪贴板. 首先,因为苹果只放出来了 UITextView,UITextF ...

  8. js 常用操作 -- 持续更新

    替换数组中某一元素: array.splice(2, 1, '哈哈'); // 2 表示指定数组中2下标元素,1表示要删除的项数,哈哈 是替换后的值 在数组中某元素之前增加元素: array.spli ...

  9. git的基本使用流程

    1. 在远端创建代码仓库 2. 拉取到本地 git clone $(path) #其中,path包括git路径或者https路径,可通过实际情况进行拉取.另外,可通过-b参数指定拉取的分支,默认拉取m ...

  10. Python基础--软件Anaconda的下载与安装

    1.Anaconda软件的优点: Anaconda指的是一个开源的Python发行版本开发平台,在进行Python开发上方便简洁,有利于初步学习和实践深度学习. 2.Anaconda软件的下载: An ...