java 21 - 12 IO流的打印流
打印流
字节流打印流 PrintStream
字符打印流 PrintWriter
打印流的特点:
A:只有写数据的,没有读取数据。只能操作目的地,不能操作数据源。(只能写入数据到文件中,而不能从文件中提取数据)
B:可以操作任意类型的数据。
C:如果启动了自动刷新,能够自动刷新。
D:该流是可以直接操作文本文件的。
哪些流对象是可以直接操作文本文件的呢?
FileInputStream
FileOutputStream
FileReader
FileWriter
PrintStream
PrintWriter
看API,查流对象的构造方法,如果同时有File类型和String类型的参数,一般来说就是可以直接操作文件的。
流如果按操作分:
基本流:就是能够直接读写文件的
高级流:在基本流基础上提供了一些其他的功能
作为Writer的子类使用:
public static void main(String[] args) throws IOException {
// 作为Writer的子类使用
PrintWriter pw = new PrintWriter("pw.txt");
pw.write("hello");
pw.write("world");
pw.write("java");
pw.close();
}
打印流的特点:
1:可以操作任意类型的数据。
print()
println()
2:启动自动刷新
PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);
还是应该调用println()的方法才可以
这个时候不仅仅自动刷新了,还实现了数据的换行。
这里的println()
其实等价于于:
bw.write();
bw.newLine();
bw.flush();
PrintWriter实现自动刷新和自动换行:
public static void main(String[] args) throws IOException {
// 创建打印流对象
PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);
pw.println("hello");
pw.println(true);
pw.println(100);
pw.close();
}
之前单纯用字符流来复制文本:
// 封装数据源
BufferedReader br = new BufferedReader(new FileReader(
"DataStreamDemo.java"));
// 封装目的地
BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java")); String line = null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
} bw.close();
br.close();
使用打印流来改进之前的复制文本例子
public static void main(String[] args) throws IOException {
//封装数据源,文本文件,用字符流
BufferedReader br = new BufferedReader(new FileReader("DataStreamDemo.java"));
//封装目的地
PrintWriter pw = new PrintWriter(new FileWriter("Copy.java"),true);
//读取数据,并写入数据
String line = null;
while((line = br.readLine()) != null){
pw.println(line); //这里一句相当于以前3句
}
//释放资源
br.close();
pw.close();
}
java 21 - 12 IO流的打印流的更多相关文章
- JAVA的IO流:打印流
打印流: 打印流是输出信息最方便的类,注意包含字节打印流PrintStream和字符打印流:PrintWriter.打印流提供了非常方便的打印功能, 可以打印任何类型的数据信息,例如:小数,整数,字符 ...
- Java - IO 内存流和打印流
IO 内存流和打印流操作 字符编码 计算机中所有的信息组成都是二进制数据,所有能够描述的中文文字都是经过处理后的结果:所有的语言文字都会使用编码来进行描述,例如:ASCII码 常见编码 GBK/GB2 ...
- 我爱Java系列之《JavaEE学习笔记day12》---【缓冲流、转换流、序列/反序列化流、打印流】
[缓冲流.转换流.序列/反序列化流.打印流] 一.缓冲流 1.字节缓冲输出流 java.io.BufferedOutputStream extends OutputStream 高效字节输出流 写入文 ...
- java的序列化流和打印流
对象操作流(序列化流) 每次读取和写出的都是JavaBean对象. 序列化:将对象写入到文件中的过程 反序列化:从文件中读取对象到程序的过程 transient: 标识瞬态,序列化的时候,该修饰符修饰 ...
- IO流之打印流
打印流的概述(只有输出就是只与数据目的有关,不会抛出IO异常) 打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式. 打印流根据流的分类: l 字节打印流 PrintStream l ...
- JavaIO——内存操作流、打印流
我们之前所做的都是对文件进行IO处理,实则我们也可以对内存进行IO处理.我们将发生在内存中的IO处理称为内存流. 内存操作流也可分为两类:字节内存流和字符内存流. (1)ByteArrayInputS ...
- Java之IO流进阶篇:内存流,打印流,对象流
Java中的IO流,即为输入输出流.所谓输入输出流,都是相对于程序而言,程序就是这个参照物.一张图看懂输入输出流: 输入流抽象基类:InputStream,Reader 输出流抽象基类:OutputS ...
- Java基础IO类之打印流
package IODemo; import java.io.*; /* 打印流 : 很方便的进行输出 字节打印流 增强输出功能 字符打印流 */ public class PrintStreamDe ...
- java ->IO流_打印流
打印流的概述 打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式. 打印流根据流的分类: 永远不会抛出IO异常 l 字节打印流 PrintStream l 字符打印流 Print ...
随机推荐
- swift学习笔记之-自动引用计数
//自动引用计数 import UIKit /*自动引用计数(Automatic Reference Counting) 防止循环强引用 Swift 使用自动引用计数(ARC)机制来跟踪和管理你的应用 ...
- QT5中全屏显示子窗口和取消全屏的方法
问题描述:用QT5做了个MDI多窗体应用程序,想把子窗体全屏显示,用网上的方法,但总是遇到问题. 网上的解决方法原文在这:http://www.cnblogs.com/Rick-w/archive/2 ...
- 优化ABAP性能(摘录)
1.使用where语句不推荐Select * from zflight.Check : zflight-airln = ‘LF’ and zflight-fligh = ‘BW222’.Endsele ...
- MVC中的CSRF解决方案
我们使用Ajax访问请求的时候,攻击者可能盗用了用户身份,以用户合法身份发送恶意请求. 具体预防措施, 1.在Html表单里面使用@Html.AntiForgeryToken(),这玩意会生成一对加密 ...
- Android项目实战(八):列表右侧边栏拼音展示效果
之前忙着做项目,好久之前的技术都没有时间总结,而发现自己的博客好多写的技术都比自己掌握的时候晚了很多.不管怎么样,写技术博客一定是一个想成为优秀程序猿或者已经是优秀程序猿必须做的.好吧,下面进行学习阶 ...
- xCode删除storyboard,新建window并启动
application:didFinishLaunchingWithOptions该函数是应用程序启动之后首次加载页面的函数,删除storyboard之后,需要在这里new出新的window,初始化, ...
- [Android]ViewPager如何只初始化一个页面
使用过ViewPager的应该都知道,ViewPager的setoffscreenpagelimit()方法,使用该方法可以设置在ViewPager滑动时,左右两侧各保存多少个页面,那我们直接设置se ...
- Python学习 windows下面安装Python和pip(一)
windows下面安装Python和pip 安装Python 第一步,我们先来安装Python, https://www.python.org/downloads/ 这里选择的是2.7.10 第二步. ...
- PHP读写XML文件的四种方法
PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介 ...
- InfluxDB数据备份与恢复
数据备份与恢复 Example:(192.167.8.13 InfluxDB:DeviceHistory备份到192.167.8.52,然后恢复到该服务器上) steps: login 192 ...