zoukankan      html  css  js  c++  java
  • Java IO学习笔记(四)打印流

    1、只有输出流才有打印流:PrintWriter和PrintStream分别针对字符和字节,提供了重载的print,Println方法用于多种数据类型的输出。PrintWriter和PrintStream操作不会抛出异常,数据没打印出来也不会抛异常。
    2、System.out.print(Object object)调用的是Object实体类的toString()方法。
    3、PrintWriter和PrintStream有自动的flush功能,不需要手动调用flush方法。*这里必须强调一点:PrintWriter的自动flush功能,只有在new PrintWriter对象的时候调用PrintWriter(Writer out, boolean autoFlush),并将 autoFlush设置为true才会自动flush,否则不会自动flush,必须手动printWriter.flush()才能成功打印数据。
         另外,PrintWriter方法不仅可以套在Writer字符输出流的外面,还可以套在字节输出流外面,PrintWriter的构造方法如下:
    PrintStream的具体构造方法如下图:
    4、System.out.println()中,java.lang.System.out中的out就是PrintStream类型的。
     
    练习小程序1:
    package test.io.print;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.PrintStream;
    public class PrintStreamTest {
         public static void main(String args[]){
               PrintStream ps = null;
               FileOutputStream fos = null;
               try {
                    fos = new FileOutputStream("E:/技术学习/java/test/Socket/test6.txt");
                    ps = new PrintStream(fos);
                    System.setOut(ps);//不再是控制台输出,而是输出到FileOutputStream所指向的文件中。
                    for(int i=0; i<3000; i++){
                         System.out.print(i+" ");
                    }
               } catch (FileNotFoundException e) {
                    e.printStackTrace();
               } finally{
                    try {
                         if(ps != null){
                               ps.close();
                         }
                         if(fos != null){
                               fos.close();
                         }
                    }catch (IOException e){
                         e.printStackTrace();
                    }
               }    
         }
    }
     
    练习小程序2:从控制台输入内容,并将控制台输入的内容打印到文件中,类似于记日志
    package test.io.print;
    import java.io.BufferedReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.util.Date;
     
    public class PrintWriterTest {
        public static void main(String args[]){
            BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
            String s = null;
            PrintWriter pw = null;
            try {
                //PrintWriter构造方法将是否自动flush设置成了true,即可自动flush,如果没设置true,则必须手动调用flush方法,才能把内容打印到文件中
                pw = new PrintWriter(new FileWriter("E:/技术学习/java/test/Socket/test7.txt",true),true);
                while((s=bf.readLine()) != null){
                    if(s.equals("exit")){
                        break;
                    }
                    System.out.println(s);
                    pw.println("---------------------------------------");
                    pw.println(s);
                    //pw.flush();
                }
                pw.println("-------------"+new Date()+"------------");
            } catch (IOException e) {
                e.printStackTrace();
            } finally{
                try {
                    if(bf != null){
                        bf.close();
                    }
                    if(pw != null){
                        pw.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    arcgis api for js入门开发系列二十打印地图的那些事
    arcgis api 3.x for js 入门开发系列十九图层在线编辑
    arcgis api 3.x for js 入门开发系列十八风向流动图(附源码下载)
    influxDB 0.9 C# 读写类
    [InfluxDB] 安装与配置
    分布式,集群,冗余的理解
    CentOS 7.0系统安装配置图解教程
    InfluxDB学习之InfluxDB的基本操作| Linux大学
    InfluxDB v1.6.4 下载
    InfluxDB中文文档
  • 原文地址:https://www.cnblogs.com/bjh1117/p/6386941.html
Copyright © 2011-2022 走看看