Java知多少(69)面向字节的输入输出流
InputStream类
面向字节的输入流都是InputStream类的子类,其类层次结构如图10-6所示。
![](http://www.weixueyuan.net/uploads/allimg/130222/8-1302222326024a.png)
图10-6 InputStream的类层次结构图
表 10-5 列出了 InputStream 的主要子类及说明。
类名 | 功能描述 |
---|---|
FileInputStream | 从文件中读取的输入流 |
PipedInputStream | 输入管道 |
FilterInputStream | 过滤输入流 |
ByteArrayInputStream | 从字节数组读取的输入流 |
SequenceInputStream | 两个或多个输入流的联合输入流,按顺序读取 |
ObjectInputStream | 对象的输入流 |
LineNumberInputStream | 为文本文件输入流附加行号 |
DataInputStream | 包含读取 Java 标准数据类型方法的输入流 |
BufferedInputStream | 缓冲输入流 |
PushbackInputStream | 返回一个字节并把此字节放回输入流 |
InputStream 流类中包含一套所有输入都需要的方法,可以完成最基本的从输入流读入数据的功能。表 10-6 列出了其中常用的方法及说明。
方法 | 功能描述 |
---|---|
void close() | 关闭输入流 |
void mark() | 标记输入流的当前位置 |
void reset() | 将读取位置返回到标记处 |
int read() | 从输入流中当前位置读入一个字节的二进制数据,以此数据为低位字节,补足16位的整型量(0~255)后返回,若输入流中当前位置没有数据,则返回-1 |
int read(byte b[]) | 从输入流中的当前位置连续读入多个字节保存在数组中,并返回所读取的字节数 |
int read(byte b[], int off, int len) | 从输入流中当前位置连续读len长的字节,从数组第off+1个元素位置处开始存放,并返回所读取的字节数 |
int available() | 返回输入流中可以读取的字节数 |
long skip(long n) | 略过n个字节 |
long skip(long n) | 跳过流内的n个字符 |
boolean markSupported() | 测试输入数据流是否支持标记 |
OutputStream类
面向字节的输出流都是OutputStream类的子类,其类层次结构如图10-7所示。
![](http://www.weixueyuan.net/uploads/allimg/130222/8-1302222312562N.jpg)
图10-7 OutputStream的类层次结构图
10-7列出了OutputStream的主要子类及说明。
类名 | 功能描述 |
---|---|
FileOutputStream | 写入文件的输出流 |
PipedOutputStream | 输出管道 |
FilterOutputStream | 过滤输出流 |
ByteArrayOutputStream | 写入字节数组的输出流 |
ObjectOutputStream | 对象的输出流 |
DataOutputStream | 包含写Java标准数据类型方法的输出流 |
BufferedOutputStream | 缓冲输出流 |
PrintStream | 包含print()和println()的输出流 |
OutputStream流类中包含一套所有输出都需要的方法,可以完成最基本的向输出流写入数据的功能。表10-8列出了其中常用的方法及说明。
方法 | 功能描述 |
---|---|
void close() | 关闭输出流 |
void flush() | 强制清空缓冲区并执行向外设输出数据 |
void write(int b) | 将参数b的低位字节写入到输出流 |
void write(byte b[]) | 按顺序将数组b[]中的全部字节写入到输出流 |
void write(byte b[], int off, int len) | 按顺序将数组b[]中第off+1个元素开始的len个数据写入到输出流 |
由于InputStream和OutputStream都是抽象类,所以在程序中创建的输入流对象一般是它们某个子类的对象,通过调用对象继承的read()和write()方法就可实现对相应外设的输入输出操作。
Java知多少(69)面向字节的输入输出流的更多相关文章
- 八. 输入输出(IO)操作4.面向字节的输入输出流
字节流以字节为传输单位,用来读写8位的数据,除了能够处理纯文本文件之外,还能用来处理二进制文件的数据.InputStream类和OutputStream类是所有字节流的父类. InputStream类 ...
- Java IO流学习总结一:输入输出流
Java IO流学习总结一:输入输出流 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148 本文出自[赵彦军的博客] J ...
- Java I/O(二)其他常用的输入输出流PrintStream等、标准流重定向
四.FilterOutputStream.PrintStream PrintStream是继承自FilterStream类的,例如标准输出流System.out就是著名的PrintStream类对象. ...
- Java基础知识笔记第十章:输入输出流
File类 文件的属性 目录 文件的创建与删除 运行可执行文件 文件字节输入流 文件字节输出流 文件字符输入输出流 缓冲流 随机流 数组流 数据流 对象流 序列化与对象克隆 使用Scanner解析文件 ...
- Java知多少(完结篇)
Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...
- Java知多少(中)
Java知多少(上) )interface接口 )接口和抽象类的区别 )泛型详解 )泛型通配符和类型参数的范围 )异常处理基础 )异常类型 )未被捕获的异常 )try和catch的使用 )多重catc ...
- Java知多少(66)输入输出(IO)和流的概述
输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息, ...
- Java 输入输出流 转载
转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...
- java输入输出流总结 转载
一.基本概念 1.1 什么是IO? IO(Input/Output)是计算机输入/输出的接口.Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是 ...
随机推荐
- 关于Git的总结
首先我们先看一张图: 首先我们必须要先理解这几个概念:暂存区,本地仓库,远程仓库 暂存区:这个是我们每一次进行代码修改的地方,例如我们ieda的所编译的代码就是缓存区 本地仓库:是我们每一次pull, ...
- QT-1-环境搭建QT5.4.1&MinGW4.9.1
1.最近在电脑上尝试了搭建QT的环境,原本准备利用VS2013+QT5.51环境,虽然安装很容易但是部署程序时,我是没能做到部署到其他机器,原因还是DLL搞不定: 2.参考友善之臂的MiniTools ...
- loj#2013. 「SCOI2016」幸运数字 点分治/线性基
题目链接 loj#2013. 「SCOI2016」幸运数字 题解 和树上路径有管...点分治吧 把询问挂到点上 求出重心后,求出重心到每个点路径上的数的线性基 对于重心为lca的合并寻味,否则标记下传 ...
- 2005 ACM 第几天 闰年
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2005 注意:闰年 查表法 #include<stdio.h> int main() { int ...
- 20172302 《Java软件结构与数据结构》第四周学习总结
2018年学习总结博客总目录:第一周 第二周 第三周 第四周 教材学习内容总结 第六章 列表 1.列表是对象的有序集合,在 List 界面中定义. List 接口表示集合框架中的列表.列表可以具有重复 ...
- org.apache.ibatis.binding.BindingException: Type interface XXX is not known to the MapperRegistry.
动态代理因为namespace的地方写错了
- tcp连接状态查看
linux常用查看tcp状态工具netstat和ss,这两个工具查看时都有1个Recv-Q和Send-Q 解释如下: 对应处于Listen状态的套接字: Recv-Q表示已建立连接队列中连接个数(等待 ...
- Java基础-多线程-②多线程安全问题
什么是线程的安全问题? 上一篇 Java基础-多线程-①线程的创建和启动 我们说使用实现Runnable接口的方式来创建线程,可以实现多个线程共享资源: class Dog implements Ru ...
- python:爬虫入门
直接上代码吧: 一.爬取某外卖平台的指定商家菜品信息 from urllib import request import json import random url = "https:// ...
- iOS:用Block写一个链式编程
一.介绍 链式编程是一个比较新颖的编程方式,简单直观,用起来也比较舒服.目前比较有名的Mansory和BabyBlueTooth就是使用链式编程写的第三方框架. 二.写法 链式编程写法不同于传统方式, ...