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)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 ...
随机推荐
- shell编程系列15--文本处理三剑客之awk格式化输出printf
shell编程系列15--文本处理三剑客之awk格式化输出printf printf的格式说明符 格式符 含义 %s 打印字符串 %d 打印十进制数 %f 打印一个浮点数 %x 打印十六进制数 %o ...
- Linux下安装maven-及常用命令
Linux下安装maven1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令: 2. ...
- DEBUG技巧1 SE37将参数保存为测试数据
1. SE37调试函数的时候,将参数保存为测试数据,供下次调试使用, 或者参考标准的赋值进行赋值 2. SE37 ->执行-> 测试序列 测试函数: CO_XT_COMPONENTS_DE ...
- sed替换字符串(变量)
sed “s/查找字段/替换字段/g” echo helloworld|sed ‘s/hello/world/g’ sed 替换字符串以变量形式 1.sed命令使用双引号的情况下,可以使用$var( ...
- 编译Flink 1.9.0
闲来无事,编个Flink 1.9 玩玩 1.下载flink.flink-shaded 源码.解压 flink flink-shaded 7.0 [venn@venn release]$ ll tota ...
- Windows自动计划任务与ParamStr详解
ParamStr函数: ParamStr(1),..ParamStr(N) ParamStr(1)代表程序入口的第一个参数,同理,ParamStr(N)代表第N个参数.可通过如下操作进行参数的赋值. ...
- 使用JSQLParser解析SQL中涉及到的表
首先添加Maven依赖: <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId& ...
- Jmeter学习——测试计划元件【转】
1. Test Plan (测试计划) 用来描述一个性能测试,包含与本次性能测试所有相关的功能.也就说本次性能测试的所有内容是于基于一个计划的. 下面看一下一个计划下面都有哪些主要的功能模块(右键单击 ...
- Keras代码超详细讲解LSTM实现细节
1.首先我们了解一下keras中的Embedding层:from keras.layers.embeddings import Embedding: Embedding参数如下: 输入尺寸:(batc ...
- k8s SLUB: Unable to allocate memory on node -1 错误
Try to Fix Two Linux Kernel Bugs While Testing TiDB Operator in K8sWed, May 1, 2019 Wenbo Zhang Auth ...