zoukankan      html  css  js  c++  java
  • 打印流-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();//不需要关闭键盘录入这种标准输入流,一旦关闭,后面获取不到。
        }
    
    }
  • 相关阅读:
    linux之卸载软件
    linux之挂载硬盘
    windows MySQL 5+ 服务手动安装
    深刻理解Python中的元类(metaclass)
    Python_cmd的各种实现方法及优劣(subprocess.Popen, os.system和commands.getstatusoutput)
    WSGI、flup、fastcgi、web.py的关系
    Windows下python环境变量配置
    External file changes sync may be slow: Project files cannot be watched (are they under network mount?)
    as。 对象和数组
    为什么for不能有序遍历数组的所有元素?(Array的设计原理)
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5911146.html
Copyright © 2011-2022 走看看