打印流:PrintStream与PrintWriter

PrintStream

该类的定义如下:

  public class PrintStream extends FilterOutputStream implemtns Appendable,Closeable

可以发现,它是OutputStream的一个子类

构造方法如下:

  PrintStream(OutputStream out)

它可以根据实例化的类对象不同,向不同的地方打印,并且在打印流中,提供了更加丰富的打印方法。

实例:

package com.fuwh.stream;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream; public class PrintStreamTest01 {
public static void main(String[] args) throws IOException {
//向文件中打印
PrintStream ps=new PrintStream(new FileOutputStream(new File("ps.txt")));
String name="貂蝉";
int age=18;
float shengao=1.41f;
ps.print(name);
ps.print(age);
ps.print(shengao);
ps.close();
}
}

这个时候,不知道大家有没有发现,我们一直在用的System.out.println()有啥特点呢,没错,里面也使用到了Println()方法。

查看System类的定义可以发现,里面存在三个静态字段:

static PrintStream err:“标准”错误输出流

static InputStream in:“标准”输入流

static PrintStream out:“标准” 输出流

他们都有固定的输入输出端。

err实例:

package com.fuwh.system;

import java.io.PrintStream;

public class ErrTest01 {
public static void main(String[] args) { PrintStream err=System.err;
err.print("这是错误信息");
}
}

可以看到,用err输出的信息是红色的。

out实例:

package com.fuwh.system;

import java.io.PrintStream;

public class OutTest01 {
public static void main(String[] args) { PrintStream out=System.out;
out.print("这是输出信息");
}
}

这个输出信息就是普通的信息。

in实例:

package com.fuwh.system;

import java.io.InputStream;

public class InTest01 {

    public static void main(String[] args) throws Exception {
InputStream is=System.in;
System.out.println("请输入数据:");
byte[] b=new byte[1024];
is.read(b);
System.out.println("输入的内容是:"+new String(b,0,b.length));
is.close();
}
}

在System类中,还存在以下三个方法,可以实现对err,out,in的输入输出重定向

  ·static void setIn(InputStream in)

  ·static void setOut(PrintStream out)

  ·static void setErr(PrintStream err)

实例--实现对out的输出重定向到文件中:

package com.fuwh.system;

import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream; public class OutTest02 {
public static void main(String[] args) throws Exception{ //调用set方法对out的输出重定向到文件中
System.setOut(new PrintStream(new FileOutputStream(new File("out.txt"))));
System.out.print("这是输出信息");
}
}

缓冲区读取: BufferedReader/BufferedWriter(重点)

类的定义如下:

  public class BufferedReader extends Reader

  public class BufferedWriter extends Writer

构造方法:

  BufferedReader(Reader in):创建一个使用默认大小输入缓冲区的缓冲字符输入流

  BufferedReader(Reader in,int size):穿件一个使用指定大小输入缓冲区的缓冲字符流

  

从字符输入流中读取文件,缓冲各个字符,从何实现字符,数组,和行的高效读取。

实例1:

package com.fuwh.buffer;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter; public class BufferedWriterTest01 {
public static void main(String[] args) throws Exception {
PrintWriter print=
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(
new File("buffer.txt")
)
)
)
);
print.write("这个定义好长啊!");
print.close();
}
}

实例2:

package com.fuwh.buffer;

import java.io.BufferedReader;
import java.io.InputStreamReader; public class BufferedReaderTest01 {
public static void main(String[] args) throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入内容:");
String str=br.readLine();
System.out.println("您输入的内容是:"+str);
br.close();
}
}

Java IO(五)==>>重点的更多相关文章

  1. java io 模型重点讲述

    java io 模型重点讲述 bio(阻塞) 同步IO 接受请求与处理请求用同一条线程 aio 应用程序线程会向系统注册一个socket请求,以及一个回调方法,继续执行下去.socket接受区的数据监 ...

  2. java IO(五):字节流、字符流的选择规律

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  3. 系统学习 Java IO (五)----使用 SequenceInputStream 组合多个流

    目录:系统学习 Java IO---- 目录,概览 SequenceInputStream 可以将两个或多个其他 InputStream 合并为一个. 首先,SequenceInputStream 将 ...

  4. 系统学习 Java IO ---- 目录,概览

    Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.h ...

  5. Java IO学习笔记五:BIO到NIO

    作者:Grey 原文地址: Java IO学习笔记五:BIO到NIO 准备环境 准备一个CentOS7的Linux实例: 实例的IP: 192.168.205.138 我们这次实验的目的就是直观感受一 ...

  6. Java IO(十五)FilterReader 和 FilterWriter、FilterReader 子类 PushBackReader

    Java IO(十五)FilterReader 和 FilterWriter.FilterReader 子类PushBackReader 一.介绍 FilterReader 和 FilterWrite ...

  7. Java IO(五)字节流 FileInputStream 和 FileOutputStream

    Java IO(五)字节流 FileInputStream 和 FileOutputStream 一.介绍 字节流 InputStream 和 OutputStream 是字节输入流和字节输出流的超类 ...

  8. JDK源码阅读(五)java.io.Serializable接口

    package java.io; public interface Serializable { } (1)实现Serializable接口的类,将会被提示提供一个 serialVersionUID ...

  9. Java IO详解(五)------包装流

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

随机推荐

  1. C#,一份超简单的数据库帮助类,SqlHelp

    简单,实用,留存. using System; using System.Collections.Generic; using System.Configuration; using System.D ...

  2. VS2013创建Windows服务 || VS2015+Windows服务简易教程

    转自:https://www.cnblogs.com/no27/p/4849123.htmlhttps://blog.csdn.net/ly416/article/details/78860522 V ...

  3. Spring MVC之适配器的获取及执行(RequestMappingHandlerAdapter)

    首先看下doDispatch()方法如何找到适合的适配器来执行方法的: protected HandlerAdapter getHandlerAdapter(Object handler) throw ...

  4. Redis——主从同步原理

    刚接触到Redis,首先对Redis有一个初步的了解. 开源,免费,遵守BSD协议,key-value数据库. 可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用. 多种key-value类型 ...

  5. Leetcode 27——Remove Element

    Given an array and a value, remove all instances of that value in-place and return the new length. D ...

  6. 2017-2018-1 我爱学Java 第一周 作业

    构建之法 成员及分工 内容简介 作者简介 分章学习及问题 第一章 概论 第二章 个人技术和流程 第三章 软件工程师的成长 第四章 两人合作 第五章 团队和流程 第六章 敏捷流程 第七章 实战中的软件工 ...

  7. xcode修改代码目录结构出现clang:error:nosuchfileordirectory解决方法

    需要迁移一个开源工程的一部分内容到自己工程,迁移对方的工程到自己工程之后,因目录结构配置整理需要,对嵌入的工程目录进行了结构改变,编译后出现: clang: error: no such file o ...

  8. JAVA和Android的回调机制

    本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢 以 前不理解什么叫回 ...

  9. [USACO13JAN] Seating

    https://www.luogu.org/problem/show?pid=3071 题目描述 To earn some extra money, the cows have opened a re ...

  10. 完美解决某法院HP EVA8400删除VDISK问题

    [故障描述] 某地法院一台HP EVA8400存储,2组扩展柜,物理磁盘由12个1T FATA磁盘(AG691A 454414-001)和10个300G 15K FC磁盘(AG690A 454411- ...