标签:close 自动 puts 字节流 文件 buffer oid reader 允许
java.io.PrintWriter
具有自动行刷新的缓冲字符输出流,特点是可以按行写出字符串,并且可以自动行刷新。
java.io.BufferedWriter是缓冲字符输出流,内部有缓冲区可以进行块写操作提供效率,
而PrintWriter就是通过连接它实现的缓冲功能(PW的很多构造方法内部自动连接它)。
PW支持两个直接对文件写操作的构造方法:
* PrintWriter(File f)传文件名
* PrintWriter(String s)传路径
以上两种方法都支持一个重载,就是再传入一个参数
* 允许我们制定写出字符时的字符集。
* PrintWriter给人一种可以直接对文件进行操作的假象
* PW是一个高级流
* 实际上PW包装了字节流、字符流和字符缓冲流。
* PW负责自动行刷新
* bw负责提高效率
* osw负责读字符
* fos负责写字节
* 最后PW能够按行很快地把一个字符串变成字节写在文件中
代码展示如下所示:
import java.io.IOException;
import java.io.PrintWriter;
/**
* java.io.PrintWriter
* 具有自动行
* @author 小明
*
*/
public class PWDemo {
public static void main(String[] args) throws IOException {
/**
* PW支持两个直接对文件写操作的构造方法:
* PrintWriter(File f)传文件名
* PrintWriter(String s)传路径
* PrintWriter给人一种可以直接对文件进行操作的假象
* PW是一个高级流
* 实际上PW包装了字节流、字符流和字符缓冲流。
* PW负责自动行刷新
* bw负责提高效率
* osw负责读字符
* fos负责写字节
* 最后PW能够按行很快地把一个字符串变成字节写在文件中
*/
PrintWriter pw = new PrintWriter("pw.txt");
pw.println("飞雪连天射白鹿");
pw.println("金庸小说我都爱看");
System.out.println("写出完毕!");
pw.close();
}
}
缓冲字符流中所有构造方法中第一个参数都是Reader或Writer对象。
代码展示如下所示:
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class PWDemo2 {
public static void main(String[] args) throws IOException {
/**
* 使用流连接形式向文件中写出字符串
*/
// FileOutputStream fos = new FileOutputStream("pw2.txt");
//
// OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
//
// BufferedWriter bw = new BufferedWriter(osw);
//
// PrintWriter pw = new PrintWriter(bw);
PrintWriter pw = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("pw2.txt")
, "UTF-8")
)
);
pw.println("你好");
pw.println("我不好");
pw.close();
}
}
标签:close 自动 puts 字节流 文件 buffer oid reader 允许
原文地址:https://www.cnblogs.com/liaoxiaolao/p/9583632.html