为什么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概述相关推荐

  1. Java学习系列(十)Java面向对象之I/O流(上)

    IO流 我们知道应用程序运行时数据是保存在内存中的,但由于内存中的数据不可持久保存(如断电或程序退出时数据会丢失),因此需要一种手段将数据写入硬盘或读入内存.面向IO流编程就是一种很好的选择.IO:I ...

  2. 【Java编程系列】java用POI、Itext生成并下载PPT、PDF文件

    热门系列: [Java编程系列]WebService的使用 [Java编程系列]在Spring MVC中使用工具类调用Service层时,Service类为null如何解决 [Java编程系列]Spr ...

  3. 【JAVA进阶系列】JAVA 设计模式 -- 抽象工厂模式(Abstract Factory)

    [JAVA进阶系列]JAVA 设计模式 -- 抽象工厂模式(Abstract Factory) [1.1]抽象工厂模式简介 抽象工厂者模式的类结构图 AbstractProduct(抽象产品),Abs ...

  4. 【Java 8系列】Java日期时间的新主宰者:LocalDate、LocalTime、LocalDateTime、ZonedDateTime

    热门系列: [Java 8系列]收集器Collector与工具类Collectors [Java 8系列]Stream详解,看这一篇就够啦 [Java 8系列]Lambda 表达式,一看就废 [Jav ...

  5. 【Java 8系列】Java开发者的判空利器 -- Optional

    热门系列: [Java 8系列]收集器Collector与工具类Collectors [Java 8系列]Stream详解,看这一篇就够啦 [Java 8系列]Lambda 表达式,一看就废 [Jav ...

  6. 【Java编程系列】Java判断世界各时区的夏令时、冬令时

    热门系列: [Java编程系列]java用POI.Itext生成并下载PPT.PDF文件 [Java编程系列]二进制如何表示小数?0.3+0.6为什么不等于0.9?纳尼!!! 程序人生,精彩抢先看 目 ...

  7. 【Java编程系列】Java自定义标签-Tag

    热门系列: [Java编程系列]WebService的使用 [Java编程系列]在Spring MVC中使用工具类调用Service层时,Service类为null如何解决 [Java编程系列]Spr ...

  8. java复习系列[4] - Java IO

    文章目录 Java IO IO传输 IO读写流程 IO类型 IO的访问方式 缓存IO(标准IO.传统IO) 直接IO 内存映射 总结 Java中IO与NIO的区别 Java NIO 流与缓冲 管道 为 ...

  9. Java学习笔记01—Java概述、数据类型、变量、标识符、类型转换

    1. Java概述 1.1 Java语言发展史(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Uni ...

  10. Java从零开始系列01:Java入门

    学习目标: 什么是Java Java特性 Java程序设计环境 Java的基本程序设计结构 1.什么是Java Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理 ...

最新文章

  1. 如何优雅地实现分页查询
  2. flinksql获取系统当前时间搓_DNF:从剑魂角度看工作服,不仅不是地摊货,更是超越了手搓套...
  3. 直方图中最大的矩形(遍历与单调栈)
  4. 20181013xlVba导入成绩
  5. linux后台运行命令,nohup
  6. 华为公开“一种芯片堆叠封装及终端设备”专利
  7. VS Code Python 将支持 Jupyter Notebook
  8. java对象名不可以是_java运行一个方法时如何得到该个对象的名字(不是类的名字)....
  9. 2021年上半年系统分析师下午真题和答案解析
  10. 微信开发之小程序获取手机号授权登录
  11. 全国计算机等级考试专用辅导教程,全国计算机等级考试专用辅导教程:二级Visual FoxPro...
  12. ProjectZomboid服务器搭建
  13. JWT实现接口双重认证,提供安全又不复杂的接口安全能力
  14. 前篇:1.公共技术点之面向对象六大原则
  15. @Idempotent注解限制同一时刻的访问间隔
  16. 矩阵运算-克罗内克积⨂ Hadamard乘积 2022年3月24日
  17. python简单算法题_python - 简单算法题 - 列表偏移
  18. 一些API函数(Console居多)Console API
  19. 2022-2028全球与中国流量变现平台市场现状及未来发展趋势
  20. VB.net 删除文件、文件夹

热门文章

  1. Bengio:我留在学术圈为全人类作贡献,而不是为某一个公司赚钱
  2. H5Plus实用代码片段
  3. Weblogic以及Tomcat登录认证
  4. python引用、浅拷贝、深拷贝
  5. 路由重发分之RIP-OSPF
  6. vim默认设置的配置
  7. CAP BASE 最终一致性
  8. ​insert带来的TiDB集群性能瓶颈排障
  9. RabbitMq(十五)消息的追踪查看配置及查看方法
  10. 学计算机的专属表白方式,九个学科专属表白句子-花式表白公式【蜜匠婚礼】...