一、 读取键盘录入和数据打印

    在System类中,
          System.out: 对应的是标准输出设备(控制台)(一个PrintStream)。
          System.in: 对应的是标准输入设备(键盘)(一个InPutStream)。

    由System.in的定义可知 :public static final InputStream in : in属性本身是一个字节输入流对象,

              可有: InputStream in = System.in;
                 其read方法是读入一个从键盘上输入的字节。

    由System.out的定义可知 :public static final PrintStream out:out本身就是一个字节输出流对象,

              可有: PrintStream out = System.out;
                   其write方法是将一个字节打印到控制台上。

    另外: System.setIn :重新分配标准输入流
        System.setOut :重新分配标准输出流

二、打印流

    该流提供了打印方法,可以将各种将各种数据类型都原样打印。

    字节打印流:
        PrintStream
          构造函数可以接受的参数类型:

                1,File对象: File 同时传入字符集名称可指定编码表
                2,字符串路径: String 同时传入字符集名称可指定编码表
                3,字节打印流: OutPutStream 同时传入True,可让println方法自动刷新

    字符打印流:
        PrintWriter
          构造函数可接受的参数:

                1,File对象: File 同时传入字符集名称可指定编码表
                2,字符串路径:String 同时传入字符集名称可指定编码表
                3,字节打印流:OutPutStream 同时传入True,可让println方法自动刷新
                4,字符打印流:Writer 同时传入True,可让println方法自动刷新

        他们中都有一个特有的输出方法:print and println

三、读取转换流

    InputStreamReader ,将一个输入字节流,转换成一个输入字符流。(字节流到字符流的桥梁)

    构造方法:
        InputStreamReader(InputStream in) 传入一个输入字节流对象,创建一个使用默认字符集的 InputStreamReader

        InputStreamReader(InputStream in, Charset cs) 传入一个输入字节流对象,创建使用给定字符集的 InputStreamReader

        InputStreamReader(InputStream in, CharsetDecoder dec) 传入一个输入字节流对象, 创建使用给定字符集解码器的 InputStreamReader。

        InputStreamReader(InputStream in, String charsetName) 传入一个输入字节流对象, 创建使用指定字符集的 InputStreamReader

    键盘行录入的使用示例:BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));

四、输出转换流

    OutputStreamWriter:将一个输出字节流,转换成一个输出字符流。(字符流到字节流的桥梁)

    构造方法:
        OutputStreamWriter(OutputStream out) 传入一个输出字节流对象,创建使用默认字符编码的 OutputStreamWriter

        OutputStreamWriter(OutputStream out, Charset cs) 传入一个输出字节流对象,创建使用给定字符集的 OutputStreamWriter。

        OutputStreamWriter(OutputStream out, CharsetEncoder enc) 传入一个输出字节流对象,

                                    创建使用给定字符集编码器的 OutputStreamWriter

        OutputStreamWriter(OutputStream out, String charsetName) 传入一个输出字节流对象,创建使用指定字符集的 OutputStreamWriter

    字符和字节之间的桥梁,一般,涉及到字符编码转换时,需要用到转换流(同时打印流也可以指定编码表)。

五、序列流

    SequenceInputStream(InputStream的子类)

    将装在集合中的InputStream对象按照顺序打印到指定的文件中(该集合必须具备Enumeration)

    构造方法:
        SequenceInputStream(Enumeration<? extends InputStream> e)

        SequenceInputStream(InputStream s1, InputStream s2)

  文件切割: Java中没有提供该方法,但是我们可以自己实现。
    思想: 使用一个数组来从源文件中读取数据, 每次将数据存入目的文件(碎片文件)1中,当该文件中存到规定容量时,
        让下一次数组中的数据存入目的问件(碎片文件)2中,当此文件也满时,存入三中,直到源文件数据被取完。

io系列之常用流一的更多相关文章

  1. io系列之常用流二

    一.对象的序列化.持久化. 将java的对象的基本数据类型和图形存入文件中,实现对象数据的序列化和持久化. 操作对象可以使用: ObjectOutPutStream 和 ObjectInPutStre ...

  2. io系列之字符流

    java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字符流. IO流 :对数据的传输流向进行操作,ja ...

  3. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  4. java io系列01之 "目录"

    java io 系列目录如下: 01. java io系列01之  "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...

  5. Java IO系列之一:IO

    1. 概述 Java IO一般包含两个部分: 1.java.io包中堵塞型IO: 2.java.nio包中的非堵塞型IO,通常称为New IO. java.io包下,分为四大块近80个类: 1.基于字 ...

  6. io系列之字节流

    java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字节流. 一.字节流的File读写操作. Inpu ...

  7. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream)

    我们以ByteArrayInputStream,拉开对字节类型的“输入流”的学习序幕.本章,我们会先对ByteArrayInputStream进行介绍,然后深入了解一下它的源码,最后通过示例来掌握它的 ...

  8. java io系列07之 FileInputStream和FileOutputStream

    本章介绍FileInputStream 和 FileOutputStream 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_07.html File ...

  9. java io系列19之 CharArrayWriter(字符数组输出流)

    本章,我们学习CharArrayWriter.学习时,我们先对CharArrayWriter有个大致了解,然后深入了解一下它的源码,最后通过示例来掌握它的用法. 转载请注明出处:http://www. ...

随机推荐

  1. NFS配置与搭建

    参考: Linux下NFS服务器的搭建与配置 https://www.cnblogs.com/liuyisai/p/5992511.html http://blog.51cto.com/hongten ...

  2. 关于Linux系统下jdk版本切换问题(alternatives命令的使用)

    [root@danny lib]# cd /usr/lib/jvm [root@danny jvm]# [root@danny jvm]# ls java java--openjdk-.b13.el7 ...

  3. 记一次阿里云服务器被用作DDOS攻击肉鸡

    事件描述:阿里云报警 ——检测该异常事件意味着您服务器上开启了"Chargen/DNS/NTP/SNMP/SSDP"这些UDP端口服务,黑客通过向该ECS发送伪造源IP和源端口的恶 ...

  4. 面对AI

    面对AI,我们应该怎么做? 李开复博士的一段话: 1. 我们应该具有战略性思维,并以人工智能无法取代的工作为目标.我们应该致力于终身学习,更新我们的技能,了解新趋势,并寻找新机遇. 2. 我们应该鼓励 ...

  5. DELPHI中MDI子窗口的关闭和打开

    DELPHI中MDI子窗口的关闭 和打开       Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会   发觉该子窗口只是最小化,而不是你预期的那样被 ...

  6. 三星Galaxy S10可望率先应用于1TB的手机内存

    导读 三星电子(Samsung Electronics)1月30日宣布,已经开始量产业界首款容量高达1TB的嵌入式通用闪存存储器(embedded Universal Flash Storage,eU ...

  7. C# 电脑上提示未知发布者

    参考6楼:http://tieba.baidu.com/p/5767451198?pid=120504172126&cid=120504203560#120504203560 解决方案:mak ...

  8. Python中的numpy模块解析

    numpy 1.  创建对象 维度(dimensions):轴 轴的个数:秩(rank) Numpy最重要的一个特点就是其N维数组对象(即ndarray) 创建数组最简单的函数就是用array函数: ...

  9. 洛谷P1083借教室题解

    题目 这个难度感觉并没有那么高,因为这个题暴力也好打,但是比较难想出正解,因为如果你不看标签是很难想到这个题竟然是二分,当然前缀和应该很好想,毕竟让你求的是在某段时间内借教室的和是否满足. 这样我们可 ...

  10. win10系统同时安装python2.7和python3.6

    我是先在本机上安装的python3.6.5,因为要学习一个框架,但是这个框架只支持python2,所以我又安装了python2.7.15,并且配置到系统环境变量 环境变量配置了python3.6.5的 ...