Java IO 系列(01)-Java IO概述
为什么80%的码农都做不了架构师?>>>
1. 引言
趁着有时间,看了下JDK1.7 API 对Java.lang.io包下经常用到的Java IO处理类做了一些总结性的东西,希望能对Java开发者有点用。
2.Java IO概述
所谓IO,也就是Input与Output的缩写。在java中,IO涉及的范围比较广泛,包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
在java io的称呼中,我们经常会提到“输入流”、“输出流”等等概念。首先,什么是流呢?
所谓“流”,就是一种抽象的数据的总称,它的本质是能够进行传输。
a) 按照“流”的数据流向,可以将其化分为:输入流和输出流。
b) 按照“流”中处理数据的单位,可以将其区分为:字节流和字符流。在java中,字节是占1个Byte,即8位;而字符是占2个Byte,即16位。而且,需要注意的是,java的字节是有符号类型,而字符是无符号类型!
3.Java IO架构
当然这还有些不完整,Serializable接口还未给出,这里只先讨论Java IO常用类,稍后讨论serializable。
我们将按照不同的类来详细讲述各个类的功能及其实现原理。
3.1 InputStream
InputStream类是所有字节输入流的超类,其函数类表如下:
// 构造函数
InputStream()int available()void close()void mark(int readlimit)boolean markSupported()int read(byte[] buffer)
abstract int read()int read(byte[] buffer, int offset, int length)
synchronized void reset()long skip(long byteCount)
所有继承了InputStream的子类都具有此类方法。
3.2 OutputStream
OutputStrem类是所有字节输出流的超累,其代码列表如下:
package java.io;public abstract class OutputStream implements Closeable, Flushable {// 将字节b写入到“输出流”中。// 它在子类中实现!public abstract void write(int b) throws IOException;// 写入字节数组b到“字节数组输出流”中。public void write(byte b[]) throws IOException {write(b, 0, b.length);}// 写入字节数组b到“字节数组输出流”中,并且off是“数组b的起始位置”,len是写入的长度public void write(byte b[], int off, int len) throws IOException {if (b == null) {throw new NullPointerException();} else if ((off < 0) || (off > b.length) || (len < 0) ||((off + len) > b.length) || ((off + len) < 0)) {throw new IndexOutOfBoundsException();} else if (len == 0) {return;}for (int i = 0 ; i < len ; i++) {write(b[off + i]);}}public void flush() throws IOException {}public void close() throws IOException {}
}
4.Java IO目录
(等其他博文写完,再来补充)
转载于:https://my.oschina.net/mrku/blog/750695
Java IO 系列(01)-Java IO概述相关推荐
- Java学习系列(十)Java面向对象之I/O流(上)
IO流 我们知道应用程序运行时数据是保存在内存中的,但由于内存中的数据不可持久保存(如断电或程序退出时数据会丢失),因此需要一种手段将数据写入硬盘或读入内存.面向IO流编程就是一种很好的选择.IO:I ...
- 【Java编程系列】java用POI、Itext生成并下载PPT、PDF文件
热门系列: [Java编程系列]WebService的使用 [Java编程系列]在Spring MVC中使用工具类调用Service层时,Service类为null如何解决 [Java编程系列]Spr ...
- 【JAVA进阶系列】JAVA 设计模式 -- 抽象工厂模式(Abstract Factory)
[JAVA进阶系列]JAVA 设计模式 -- 抽象工厂模式(Abstract Factory) [1.1]抽象工厂模式简介 抽象工厂者模式的类结构图 AbstractProduct(抽象产品),Abs ...
- 【Java 8系列】Java日期时间的新主宰者:LocalDate、LocalTime、LocalDateTime、ZonedDateTime
热门系列: [Java 8系列]收集器Collector与工具类Collectors [Java 8系列]Stream详解,看这一篇就够啦 [Java 8系列]Lambda 表达式,一看就废 [Jav ...
- 【Java 8系列】Java开发者的判空利器 -- Optional
热门系列: [Java 8系列]收集器Collector与工具类Collectors [Java 8系列]Stream详解,看这一篇就够啦 [Java 8系列]Lambda 表达式,一看就废 [Jav ...
- 【Java编程系列】Java判断世界各时区的夏令时、冬令时
热门系列: [Java编程系列]java用POI.Itext生成并下载PPT.PDF文件 [Java编程系列]二进制如何表示小数?0.3+0.6为什么不等于0.9?纳尼!!! 程序人生,精彩抢先看 目 ...
- 【Java编程系列】Java自定义标签-Tag
热门系列: [Java编程系列]WebService的使用 [Java编程系列]在Spring MVC中使用工具类调用Service层时,Service类为null如何解决 [Java编程系列]Spr ...
- java复习系列[4] - Java IO
文章目录 Java IO IO传输 IO读写流程 IO类型 IO的访问方式 缓存IO(标准IO.传统IO) 直接IO 内存映射 总结 Java中IO与NIO的区别 Java NIO 流与缓冲 管道 为 ...
- Java学习笔记01—Java概述、数据类型、变量、标识符、类型转换
1. Java概述 1.1 Java语言发展史(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Uni ...
- Java从零开始系列01:Java入门
学习目标: 什么是Java Java特性 Java程序设计环境 Java的基本程序设计结构 1.什么是Java Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理 ...
最新文章
- 如何优雅地实现分页查询
- flinksql获取系统当前时间搓_DNF:从剑魂角度看工作服,不仅不是地摊货,更是超越了手搓套...
- 直方图中最大的矩形(遍历与单调栈)
- 20181013xlVba导入成绩
- linux后台运行命令,nohup
- 华为公开“一种芯片堆叠封装及终端设备”专利
- VS Code Python 将支持 Jupyter Notebook
- java对象名不可以是_java运行一个方法时如何得到该个对象的名字(不是类的名字)....
- 2021年上半年系统分析师下午真题和答案解析
- 微信开发之小程序获取手机号授权登录
- 全国计算机等级考试专用辅导教程,全国计算机等级考试专用辅导教程:二级Visual FoxPro...
- ProjectZomboid服务器搭建
- JWT实现接口双重认证,提供安全又不复杂的接口安全能力
- 前篇:1.公共技术点之面向对象六大原则
- @Idempotent注解限制同一时刻的访问间隔
- 矩阵运算-克罗内克积⨂ Hadamard乘积 2022年3月24日
- python简单算法题_python - 简单算法题 - 列表偏移
- 一些API函数(Console居多)Console API
- 2022-2028全球与中国流量变现平台市场现状及未来发展趋势
- VB.net 删除文件、文件夹