• 打印流-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();//不需要关闭键盘录入这种标准输入流,一旦关闭,后面获取不到。
        }
    
    }
  • 相关阅读:
    LeetCode–打印从1到最大的n位数
    常用十大算法(十)— 踏棋盘算法
    常用十大算法(九)— 弗洛伊德算法
    常用十大算法(八)— 迪杰斯特拉算法
    LeetCode–组合
    LeetCode–组合总和
    5513. 连接所有点的最小费用 kruskal
    152. 乘积最大子数组 dp
    1567. 乘积为正数的最长子数组长度 dp
    5481. 得到目标数组的最少函数调用次数. 位运算
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5911146.html
Copyright © 2020-2023  润新知