打印流: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. 下一个ajax异步请求被挂起问题

    异步请求按理来说应该是会不受其它ajax请求影响的,但如果是服务端访问了Session就不能这么说了. 了解了asp.net的会话管理,那我们来看看今天要谈到的主题: IReadOnlySession ...

  2. werkzeug(flask)中的local,localstack,localproxy探究

    1.关于local python中有threading local处理方式,在多线程环境中将变量按照线程id区分 由于协程在Python web中广泛使用,所以threading local不再满足需 ...

  3. 初学MySQL基础知识笔记--02

    查询部分 1> 查询数据中所有数据:select * from 表名 2> 查询数据中某项的数据:eg:select id,name from students; 3> 消除重复行: ...

  4. JavaScript(第二十一天)【DOM元素尺寸和位置】

    学习要点: 1.获取元素CSS大小 2.获取元素实际大小 3.获取元素周边大小 本章,我们主要讨论一下页面中的某一个元素它的各种大小和各种位置的计算方式,以便更好的理解.   一.获取元素CSS大小 ...

  5. 201621123062《java程序设计》第二周学习总结

    1.本周学习总结 本周学习重点: 1.java的基本数据类型(类似于C,特有boolean),java的引用类型(类似指针),其他常用类. 2.字符串类型String(比c简单),String的不变性 ...

  6. 团队作业7——第二次项目冲刺(Beta版本12.08)

    项目每个成员的进展.存在问题.接下来两天的安排. 已完成的内容:完成了排行榜的测试.上传头像功能的原型设计.界面优化 计划完成的内容:上传头像功能开发.测试.头像裁剪原型设计 每个人的工作 (有wor ...

  7. listview 与 button 焦点 在item添加下列属性

    android:descendantFocusability="blocksDescendants" http://zhaojianping.blog.51cto.com/7251 ...

  8. SWFUpload文件上传详解

    SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大. SWFUpload的特点: 1.用flash进行上传,页面无刷新,且可自定义Flash按钮的样式; 2.可以在浏览器 ...

  9. java希尔排序

    java希尔排序 1.基本思想: 希尔排序也成为"缩小增量排序",其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插 ...

  10. pdf解析与结构化提取

    #PDF解析与结构化提取##PDF解析对于PDF文档,我们选择用PDFMiner对其进行解析,得到文本.###PDFMinerPDFMiner使用了一种称作lazy parsing的策略,只在需要的时 ...