好记性不如赖笔头…………
注意:
PrintWriter只有输出写入功能,而没有读取功能
PrintWriter 是字符输出,PrintStream 是字符输出
PrintWriter的底层还是由BufferedWriter、BufferedStreamWriter实现的。
package com.Ckinghan.ioDemo;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class PrintStreamDemo {
/**
* @描述:打印流
* @创建时间:
*/
public static void main(String[] args) {
/**
* 使用打印流写入到文件
*/
printWriter();
/**
* 使用自动刷新的打印流写入到文件
*/
printWriterAutoFlsh();
/**
* 读取文件内容,使用PrintWriter打印到控制台
*/
readWriterController();
}
/**
* @描述:读取文件内容,使用PrintWriter打印到控制台
* @创建时间:
*/
public static void readWriterController(){
BufferedReader bufferedReader = null;
PrintWriter printWriter = null;
try {
bufferedReader = new BufferedReader(new FileReader("PrintStreamAuto.JAVA"));
/**
* 实例化printWriter打印对象,并开启自动刷新功能
*/
printWriter = new PrintWriter(System.out,true);
String readerString = null;
while ((readerString = bufferedReader.readLine()) != null) {
/**
* 将数据输出到控制台
*
* 因为开启了自动刷新功能,所以println相当于以下执行了以下方法
* printWriter.write(String string); //写入字符
* printWriter.newLine(); //换行
* printWriter.flsh(); //清空缓存
*/
printWriter.println(readerString);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @描述:使用自动刷新的打印流写入到文件
* @创建时间:
*/
public static void printWriterAutoFlsh(){
//创建打印流对象
PrintWriter printWriter = null;
try {
/**
* 注意,PrintWriter(new Writer,boolean AutoFlsh) 可以设置是否可以自动刷新缓冲区数据
* 如果每个参数为String类型,它是没有boolean AutoFlsh参数的,这点要注意
*/
printWriter = new PrintWriter(new FileWriter("PrintStreamAuto.JAVA"),true);
/**
* 将数据写入到文件
*
* 因为开启了自动刷新功能,所以println相当于以下执行了以下方法
* printWriter.write(String string); //写入字符
* printWriter.newLine(); //换行
* printWriter.flsh(); //清空缓存
*/
printWriter.println("我开启了PrintWriter的自动缓冲刷新功能");
printWriter.println("我将要被写入到文件中,等待被读取");
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally {
//关闭流
if(printWriter != null){
printWriter.close();
}
}
}
/**
* @描述:使用打印流写入到文件
* @创建时间:
*/
public static void printWriter(){
//创建打印流对象
PrintWriter printWriter = null;
try {
//实例化打印流对象
printWriter = new PrintWriter("PrintStream.JAVA");
//将数据写入到文件
printWriter.println("呈中哦违反塑料科技的法律塉废旧塑料大家法律是否觉得");
//清空缓冲区数据
printWriter.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
//关闭流
if(printWriter != null){
printWriter.close();
}
}
}
}
---------------------------------------------------------------------执行结果---------------------------------------------------------------------
我开启了PrintWriter的自动缓冲刷新功能
我将要被写入到文件中,等待被读取