io系列之常用流一
一、 读取键盘录入和数据打印
在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系列之常用流一的更多相关文章
- io系列之常用流二
一.对象的序列化.持久化. 将java的对象的基本数据类型和图形存入文件中,实现对象数据的序列化和持久化. 操作对象可以使用: ObjectOutPutStream 和 ObjectInPutStre ...
- io系列之字符流
java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字符流. IO流 :对数据的传输流向进行操作,ja ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- java io系列01之 "目录"
java io 系列目录如下: 01. java io系列01之 "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...
- Java IO系列之一:IO
1. 概述 Java IO一般包含两个部分: 1.java.io包中堵塞型IO: 2.java.nio包中的非堵塞型IO,通常称为New IO. java.io包下,分为四大块近80个类: 1.基于字 ...
- io系列之字节流
java中io流系统庞大,知识点众多,作为小白通过五天的视频书籍学习后,总结了io系列的随笔,以便将来复习查看. 本篇为此系列随笔的第一篇:io系列之字节流. 一.字节流的File读写操作. Inpu ...
- java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream)
我们以ByteArrayInputStream,拉开对字节类型的“输入流”的学习序幕.本章,我们会先对ByteArrayInputStream进行介绍,然后深入了解一下它的源码,最后通过示例来掌握它的 ...
- java io系列07之 FileInputStream和FileOutputStream
本章介绍FileInputStream 和 FileOutputStream 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_07.html File ...
- java io系列19之 CharArrayWriter(字符数组输出流)
本章,我们学习CharArrayWriter.学习时,我们先对CharArrayWriter有个大致了解,然后深入了解一下它的源码,最后通过示例来掌握它的用法. 转载请注明出处:http://www. ...
随机推荐
- linux audit审计(2)--audit启动
参考:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec- ...
- Java多线程4:Thread中的静态方法
一.Thread类中的静态方法 Thread类中的静态方法是通过Thread.方法名来调用的,那么问题来了,这个Thread指的是哪个Thread,是所在位置对应的那个Thread嘛?通过下面的例子可 ...
- MySQL系列:索引基本操作(4)
1. 索引简介 索引是一种特殊的数据库结构,可以用来快速查询数据中的特定记录. MySQL中索引包括:普通索引.唯一性索引.全文索引.单列索引.多列索引和空间索引等. 1.1 索引定义 索引由数据库表 ...
- Lodop背景图无图片时显示放大叉号问题
正常情况下,如果指定图片路径中,图片不存在或指定错误的路径,会因为找不到图片显示叉号,Lodop背景图如果设置了背景图宽度高度控制,显示的叉号也会被相应的放大,形成放大的模糊的图案,看起来就像是黑色边 ...
- java开发支付宝支付详细流程_demo的运行
首先我要吐槽一下支付宝的开放平台简直就是一个迷宫,赞同的顶一下,下面我把要下载的地址给贴出来要不真不好找: 一.准备工作 1.签名工具下载 https://docs.open.alipay.com/2 ...
- Linux 学习 (一) Linux简介
Linux达人养成计划 I 学习笔记 Linux 内核官网:www.kernel.org 内核版本说明:主版本.次版本.末版本,如2.6.18 Linux 主要发行版本 RedHat: 服务器领域,部 ...
- 【python练习题】程序10
#10.题目:暂停一秒输出,并格式化当前时间. import time print(time.time())#timestamp print(time.localtime(time.time()))# ...
- 【数学建模】day11-典型相关分析
这与主成分分析有点相似. 0. 基本思想主成分分析(PCA)是把原始有相关性变量,线性组合出无关的变量(投影),以利用主成分变量进行更加有效的分析.而典型相关分析(CCA)的思想是: 分析自变量组 X ...
- Qt 网格布局
把十六个button放到网格布局的界面上 #include "mainwindow.h" #include <QApplication> #include<QtW ...
- LOJ2269 [SDOI2017] 切树游戏 【FWT】【动态DP】【树链剖分】【线段树】
题目分析: 好题.本来是一道好的非套路题,但是不凑巧的是当年有一位国家集训队员正好介绍了这个算法. 首先考虑静态的情况.这个的DP方程非常容易写出来. 接着可以注意到对于异或结果的计数可以看成一个FW ...