/* * 打印流 * 该流提供了打印方法,可以将各种数据类型的数据都原样打印 * * 字节打印流 * printStream * 它可以直接操作文件对象,因此就比较重要。 * 构造函数可以接收的参数类型: * 1.file对象 * 2.字符串路径。String * 3.字节输出流。 OutputStream * * 字符打印流 * PrintWriter * 构造函数可以接收的参数类型: * 1.file对象 * 2.字符串路径。String * 3.字节输出流。 OutputStream * 4.字符输出流。 Writer、 * */ package com.tgx.file; import java.io.BufferedReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; public class PrintStreamDemo { public static void main(String[] args) throws IOException { //读取键盘操作 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); //这个通用性极强,往控制台打印,对应的对象的是字节输出流 //PrintWriter out = new PrintWriter(System.out,true);//后面的true是即时刷新,只针对流而言 //也可以写入到文件中, //可以是一个文件对象,也可以是一个String.文件要是不存在,就创建一个文件 //PrintWriter out = new PrintWriter("printStream.txt"); //但是这样的话就不会自动刷新文件的内容了,要程序退出时才会刷新。 //那么可以将文件封装到文件流中 PrintWriter out = new PrintWriter(new FileWriter("printString.txt"),true); String line = null; while((line=bufr.readLine())!=null){ if(line.equals("exit")){ System.out.println("成功退出..."); out.close(); bufr.close(); break; } out.println(line.toUpperCase());//转换成大写书痴 out.flush(); } out.close(); bufr.close(); } }