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();
            }
        }
    }
}

转载于:https://www.cnblogs.com/bjh1117/p/6386941.html

Java IO学习笔记(四)打印流相关推荐

  1. Java IO学习笔记四

    内存操作流 之前的所有的流操作都是针对文件的,但是有时候只是想要实现数据间转换,此时如果我们想要创建一个文件然后再删除文件,那样显得有点麻烦,因此此时的内存操作流就显得很适合这类的操作,因为它只是在内 ...

  2. Java IO学习笔记总结

    Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...

  3. Java IO ---学习笔记(数据流)

    数据流: 接口 DataInput 和 DataOutput,设计了一种较为高级的数据输入输出方式:除了可处理字节和字节数组外,还可以处理 int.float.boolean等基本数据类型,这些数据在 ...

  4. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  5. 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结

    Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...

  6. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  7. 【Java】学习笔记2——从小白到入门(技术提升篇)

    写在前面 [Java]学习笔记1--从小小白到小白 (基础知识篇)里记录了Java中最最基础的知识,在对基础知识有了基本了解之后,就可以开始着手技术提升了.本篇博客也将延续第一篇,继续记录我的Java ...

  8. Java NIO 学习笔记(三)----Selector

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  9. 深入浅出 Java CMS 学习笔记

    转载自  深入浅出 Java CMS 学习笔记 引子 带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助. 1. ...

最新文章

  1. Android实用代码七段(五)
  2. 大家都在讨论裁员,我只想聊聊成长 !
  3. 2016 Multi-University Training Contest 1 GCD【RMQ+二分】
  4. 只学python找工作难吗-只学python语言找工作难吗?
  5. 管中窥“视频”,“理解”一斑 —— 视频理解概览
  6. 数学作图工具_八十中成功举办北京市初中数学教学研讨会
  7. 2021前端面试题总结
  8. JavaOne 2012:向上,向上和向外:使用Akka扩展软件
  9. Android ADT Templates Android常用模版
  10. php 的主要功能和特点,PHPMailer的主要功能特点和简单使用说明
  11. 对面板数据模型中的一些理解
  12. 变速齿轮”再研究-----(转帖)
  13. [reading notes] css W3school reading notes
  14. 斐波那契数列python编程_fibonacci数列-斐波那契数列-python编程
  15. view-source是一种协议,查看源码
  16. egret 里面设置MovieClip的scale缩放值时,没有效果的情况
  17. 2020年中国维生素行业发展现状及竞争格局分析,市场空间广阔「图」
  18. springboot+jpa+mysql Springboot+jpa+jdbc+sqlserver 使用时遇到的一系列的问题
  19. 虚拟机云服务器6.0教程pdf,虚拟机云服务器6.0教程pdf
  20. 浅谈架构、操作系统、芯片的理解

热门文章

  1. java创建请求拦截器_80.简单Retrofit+RxJava+日志拦截器结合使用
  2. 对抽象工厂+反射+配置文件的实例理解
  3. div+css中clear用法
  4. iOS开发:动态添加按钮
  5. golang中的select详解
  6. 动态规划-最长回文子串
  7. 共用体和枚举,写写意思下
  8. linux下各个头文件及作用总结
  9. MySQL笔记12:C语言访问MYSQL数据库的完整的代码例子
  10. python类常用装饰器