`
javasogo
  • 浏览: 1815682 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java语言基础:流类(1)

阅读更多
1. java通过流的概念来实现数据的输入输出,或叫读写更容易理解一些;下面4个类是所有流的基类,分别处理字节和字符的读写:
  • InputStream: 输入(读)字节流抽象类。
  • OutputStream: 输出(写)字节流抽象类。
  • Reader: 输入(读)字符流抽象类。
  • Writer: 输出(写)字符流抽象类。

2. 上面4个抽象类提供了最基本的读写方法,输入输出流有一个当前位置(Pos)的概念,指定下一次的读写将从流的什么位置开始,调用Read或Write方法时,Pos会同时向后移,移多少依读写多少字节或多少字符而定:

  • InpuStream:

方法
说明
public abstract int read()
从流中读下一个字节,方法返回这个字节,但如果到达流结尾,将返回回-1。
public int read(byte[] b)
从流中读出多个字节,并存到数组b中;期望读出的字节数由数组的长度决定,方法返回的是实际读出的字节,如果已到达结尾将返回-1。
public int read(byte[] b, int off, int len)
从流中读出多个字节,并存到数组b中;期望读出的字节数由len决定,off指定b的偏移,数据将从这个偏移开始保存;方法返回实际读出的字节,如果已到达结尾将返回-1。
public void mark(int readlimit)
标记一个位置,当下一次调用reset时,Pos将被定位到这个位置。
public void reset()
重置Pos到上一次mark指定的位置,默认为0.
public boolean markSupported()
是否支持标记
public long skip(long n)
从Pos跳过n个字节,相当于Pos += n。
public void close()
关闭流以释放相关的系统资源,比如文件流,但并不是所有的流类都需要Close。
public int available()
还有多少字节可以读取,相当于: Size - Pos
  • OutStream:

方法
说明
public abstract void write(int b)
向流写一个字节
public void write(byte[] b)
向流写多个字节
public void write(byte[] b, int off, int len)
向流写多个字节,从数组的off偏移开始写,最多写len个字节。
public void close()
关闭流以释放相关的系统资源,比如文件流,但并不是所有的流类都需要Close。
public void flush()
刷新流,提供这个方法意图是:如果流的实现是将之前写入的数据缓存着,调用该方法可以强迫将数据真正写入流中。
  • Reader和Writer和上面的InputStream和OutStream很类似,只不过他们读写的单位是字符,并且提供几个方法读写String的方法。
3. 所有流类都直接或间接继承自上面4个抽象类,并提供不同的功能,下面是常用流类的继承关系:
InputStream
|-ByteArrayInputStream: 字节输入流。
|-FileInputStream: 文件输入流
|-ObjectInputStream: 对象输入流
|-PipedInputStream: 管道输入流
|-FilterInputStream: 过滤输入流
|-BufferedInputStream: 缓存输入流,读出时先缓存。
|-DataInputStream: 数据输入流,读出Java基本数据类型。
OutStream
|-ByteArrayOutputStream: 字节输出流
|-FileOutputStream: 文件输出流
|-ObjectOutputStream: 对象输出流
|-PipedOutputStream: 管道输出流
|-FilterOutputStream: 过滤输出流
|-BufferedOutputStream: 缓存输入流,读出时先缓存。
|-DataOutputStream: 数据输入流,读出Java基本数据类型。
Reader
|-CharArrayReader: 字符读流。
|-StringReader: 字符串读流。
|-PipedReader: 管道读流。
|-BufferedReader: 缓存读流。
|-InputStreamReader: 从字节流读出字符。
Writer
|-CharArrayWriter: 字符写流。
|-StringWriter: 字符串写流。
|-PipedWriter: 管道写流。
|-BufferedWriter: 缓存写流。
|-OutputStreamWriter: 将字符写入字节流。
分享到:
评论

相关推荐

    java教案-Java语言概述基础流程控制字符串数组类和对象

     Java语言基础知识: 什么是Java语言:java语言的发展与开发环境 Java语言的基本结构:java语言的基本结构 Java语言的基本要素:java基本语法/类与对象/继承与接口  异常、IO、多线程 Java异常处理与...

    Java语言基础教程:第一章概述 PPT

    1. 类与对象:类是Java中的蓝图,描述了对象的属性和行为。对象是类的实例,可以调用类中定义的方法。 2. 变量:Java中的变量必须先声明后使用,可以是基本类型或引用类型。 3. 控制流:包括条件语句(if-else)、...

    完整版 Java基础入门教程 Java程序语言设计 04 IO流 输入输出流(共31页).ppt

    完整版 Java基础入门教程 Java程序语言设计 01 java语言基础 Java语言概述(共24页).ppt 完整版 Java基础入门教程 Java程序语言设计 02 java语法基础 Java语法基础(共32页).ppt 完整版 Java基础入门教程 Java程序...

    Java语言基础pdf电子书

    Java语言基础.pdf电子书是一本面向初学者的教程,涵盖了Java编程语言的核心概念和基础知识。这本书以详尽易懂的方式,引导读者深入了解Java的世界。在Java这个标签下,我们可以期待学习到以下关键知识点: 1. **...

    java语言基础.zip

    Java语言基础是编程入门的重要部分,它涵盖了编程的基本概念、语法和编程思想。这份"java语言基础.zip"压缩包很可能是某内部培训机构的教学资料,旨在帮助初学者掌握Java编程的核心知识。下面,我们将深入探讨Java...

    java语言基础 详解 java实例20

    Java语言基础是编程学习的重要部分,它为程序员提供了构建复杂应用程序的基础。在这个“Java语言基础 详解 java实例20”中,我们将深入探讨Java的核心概念和技术,这些内容将帮助初学者建立坚实的编程基础。 首先,...

    Java应用基础:网友精选25个Java试题分享

    Java作为一门广泛应用于企业级开发、互联网应用以及大数据处理等领域的编程语言,其基础知识的掌握对于初学者和专业开发者都至关重要。"Java应用基础:网友精选25个Java试题分享"是一个集合了Java核心概念与实践操作...

    Java语言程序设计(基础篇)资料

    Java语言程序设计是编程学习的重要领域,特别是在基础篇中,主要涵盖了Java编程的基本概念、语法和常用编程技巧。本资料出自梁勇与戴开宇译的《Java语言程序设计》第十版,是一份深入浅出的Java入门教程。在"book10...

    Java语言程序设计 基础篇 第10版 梁勇 答案

    1. **Java语言基础**:Java是一种面向对象的编程语言,其特点包括跨平台性、安全性、高效性和稳定性。Java程序的编写基于类和对象,通过封装、继承和多态等面向对象特性实现代码复用和模块化。 2. **Java语法**:...

    《java语言基础》练习题.doc

    Java语言基础知识点总结主要包括Java的基本概念、Java语言的特点、Java程序设计的基本结构、Java的数据类型、变量、运算符、控制流语句、数组、方法、面向对象编程、异常处理等。 一、Java基础知识点 1. Java语言...

    Java语言程序设计与数据结构(第11版)_java_

    1. **Java编程基础**:本书首先会介绍Java语言的基础语法,包括变量、常量、数据类型(如整型、浮点型、字符型、布尔型以及引用类型)、运算符、流程控制(条件语句、循环语句)以及异常处理。 2. **面向对象编程**...

    Java语言程序设计(基础篇+进阶篇)第六版 答案(不含编程题)

    《Java语言程序设计(基础篇+进阶篇)第六版》是Java学习的重要参考资料,尤其对于初学者和希望深入理解Java编程概念的人来说,这是一本不可多得的教材。本书分为基础篇和进阶篇,涵盖了Java编程的各个方面,旨在帮助...

    Java高手真经 编程基础卷.part1.rar

    《Java高手真经(编程基础卷):Java核心编程技术》详细讲解了Java语言基础开发中的各种技术,主要内容包括如下。Java开发入门:JDK、JVM、Eclipse、Linux。Java语法基础:类、抽象类、接口、内部类、匿名类、异常、...

    完整版 Java基础入门教程 Java程序语言设计 03 java对象 类和对象1(共23页).ppt

    完整版 Java基础入门教程 Java程序语言设计 01 java语言基础 Java语言概述(共24页).ppt 完整版 Java基础入门教程 Java程序语言设计 02 java语法基础 Java语法基础(共32页).ppt 完整版 Java基础入门教程 Java程序...

    完整版 Java编程基础入门教程 Java语言程序设计 第1章_java概述(共50页).ppt

    完整版 Java编程基础入门教程 Java语言程序设计 第2章_语言基础(共45页).ppt 完整版 Java编程基础入门教程 Java语言程序设计 第3章_面向对象程序设计基础(共16页).ppt 完整版 Java编程基础入门教程 Java语言程序...

    java语言学习的基础知识

    Java语言学习的基础知识涵盖了许多方面,对于初学者来说,理解并掌握这些概念是至关重要的。以下是一些核心知识点的详细说明: 1. **Java简介**:Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems(现...

    Java语言程序设计(基础篇)习题答案

    "Java语言程序设计(基础篇)习题答案"是一份针对初学者的重要参考资料,它旨在帮助学习者巩固Java基础知识,理解并掌握核心概念。这份资料可能包含一系列与Java编程相关的练习题及其解答,涵盖变量、数据类型、控制...

Global site tag (gtag.js) - Google Analytics