Java 之 打印流
打印流
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 之 打印流的更多相关文章
- 【java】打印流的基本实现及java.io.PrintStream、java.io.PrintWriter示例
package 打印流; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impor ...
- Java基础IO类之打印流
package IODemo; import java.io.*; /* 打印流 : 很方便的进行输出 字节打印流 增强输出功能 字符打印流 */ public class PrintStreamDe ...
- java 打印流(PrintStream)
打印流(PrintStream):打印流可以打印任意类型的数据,而且打印流在打印数据之前会将数据转为字符串在进行打印 PrintStream可以接受文件和其他字节输出流,所以打印流是对普通字节输出流的 ...
- 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流
------- android培训.java培训.期待与您交流! ---------- File类 用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作. File对象可以作为参数传递 ...
- java 21 - 12 IO流的打印流
打印流 字节流打印流 PrintStream 字符打印流 PrintWriter打印流的特点: A:只有写数据的,没有读取数据.只能操作目的地,不能操作数据源.(只能写入数据到文件中,而不能从文件中提 ...
- Java:IO流其他类(字节数组流、字符数组流、数据流、打印流、Properities、对象流、管道流、随机访问、序列流、字符串读写流)
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read ...
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...
- Java基础知识强化之IO流笔记60:打印流 之 改进复制文本文件的案例
1. 使用打印流改进复制文本文件的案例 2. 代码示例: package cn.itcast_03; import java.io.BufferedReader; import java.io.Buf ...
- Java基础知识强化之IO流笔记59:打印流
1. 打印流 (1)分类: • 字节打印流 PrintStream • 字符打印流 PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...
随机推荐
- 【转载】 我的Machine Learning学习之路
原文地址: https://www.cnblogs.com/steven-yang/p/5857964.html ------------------------------------------- ...
- pytorch 中Dataloader中的collate_fn参数
一般的,默认的collate_fn函数是要求一个batch中的图片都具有相同size(因为要做stack操作),当一个batch中的图片大小都不同时,可以使用自定义的collate_fn函数,则一个b ...
- html 图标和文字一行对齐
原图: 效果图: 备注:vertical-align:middle <div> <p class="time tl-size12" style="pad ...
- node.js http-server 搭建本地服务器
使用vue-cli创建的项目,能够实现浏览器中自动刷新,实时查看项目效果,其中的原理在于,webpack在本地启动了一个本地服务器,将本机当作一台服务器: 打包后的文件是一个html静态页面,在本地文 ...
- Redis概述与基本操作
redis教程 概述 redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(strin ...
- 避免复制引用程序集的XML文件
VS在编译时,默认会复制所有引用程序集对应的XML文件到输出目录. 在项目中设置AllowedReferenceRelatedFileExtensions可以避免复制操作. <PropertyG ...
- 一次性清除页面上的所有setInterval
参考链接:https://www.cnblogs.com/liujinyu/p/3668575.html
- autocomplete="off" 在新版chrome中不起作用
autocomplete="off" 在新版chrome中不起作用,还是自动填充了 用户名和密码,改为 autocomplete="new-password" ...
- 【leetcode算法-简单】7.整数反转
[题目描述] 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321 示例 3: 输入: 12 ...
- GSVA的使用
GSVA的简介 Gene Set Variation Analysis,被称为基因集变异分析,是一种非参数的无监督分析方法,主要用来评估芯片核转录组的基因集富集结果.主要是通过将基因在不同样品间的表达 ...