首页 > 代码库 > 打印流-PrintStream和PrintWriter

打印流-PrintStream和PrintWriter

IO包中的其他功能流对象
功能流对象
特点:解决问题的特有方法。

打印流--必须是输出流(两个都是)
PrintStream(字节流) PrintWriter(字符流)
特点:打印。不抛异常
打印的目的:File对象,字符串路径,字节输出流。


解决的问题:方便的打印各种数据的表示形式。
它的打印方法可以保证数值的表现形式不变。写的是什么样子,目的地就是什么样子

PrintWriter:一样具备打印功能。
目的:File对象,字符串路径,字节输出流,字符输出流。

PrintStream实例:

import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;import java.io.PrintStream;    public class PrintStreamDemo {    public static void main(String[] args) throws IOException {//        System.out.println("hello");        //        PrintStream ps = System.out;//        ps.println("hello");                File dir = new File("tempfile");        if(!dir.exists()){            dir.mkdir();        }                //演示PrintStream的特有方法。        //1.创建PrintStream对象,目的就定位文件        PrintStream out = new PrintStream("tempfile\\print.txt");        //        out.write(353);//字节流的write方法一次只写出一个字节,也就是将一个整数的最低八位写出        //        out.write("353".getBytes());  麻烦                out.print(353);//保证数值的表现形式。原理:write(String.valueOf(i));将数值转成字符串。                out.close();            }}

PrintWriter实例:

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;public class PrintWriterDemo {    public static void main(String[] args) throws IOException {                /*         * 演示一个小例子         * 读取键盘录入,将数据转成大写显示在屏幕上。         */                //1.键盘录入        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));                //2.定义目的        //BufferedWriter bufw = new BufferedWriter(new PrintStream(System.out));                PrintWriter pw = new PrintWriter(System.out,true);//对println,printf,format方法自动刷新        //字符流内部都有缓冲区                //改变目的为文件,还想自动刷新。        pw = new PrintWriter(new BufferedWriter(new FileWriter("tempfile\\1.txt")),true);                //3.读一行,写一行,键盘录入一定要定义结束标记        String line = null;        while((line=bufr.readLine())!=null){//readline是一个阻塞式方法            if("over".equals(line))                break;            pw.println(line.toUpperCase());//            pw.flush();//因为数据被临时缓存了        }                pw.close();//系统流关不关都可以        bufr.close();//不需要关闭键盘录入这种标准输入流,一旦关闭,后面获取不到。    }}

 

打印流-PrintStream和PrintWriter