`
cjh820425
  • 浏览: 155388 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java I/O笔记

阅读更多

 

JAVA  I/O

  1. 基本概念 :

I/O(Input/Output): 输入输出

数据源 (Data Source): 提供数据的地方 , 包括键盘输入 , 硬盘文件 , 网络文件等

数据宿 (Data Sink): 接收数据的地方 , 包括显示器 , 硬盘文件 , 打印机等 .

2. (Stream):JAVA 中把不同的数据源与程序间的数据传输都抽象表述为 ”(Stream), 从而完成输入输出操作

    I/O 流的分类 :

  > 输入流 (Input Stream) 和输出流 (Output Stream)

    输入流只能从中读取数据 , 而不能向其中写入数据 .

    输出流只能从中写入数据 , 而不能读取其中的数据 .

    特例 :java.io.RandomAccessFile 可以随机读写文件 .

  > 节点流 (Node Stream) 和处理流 (Processing Stream)

    节点流是直接连接到数据源的

    处理流是对一个已经存在的流的连接和封装 , 通过封装 , 可增强数据的读写功能 .

  > 字节流 (Byte Stream) 和字符流 (Character  Stream)

  字节流以字节为单位进行传输 , 如字母

  字符流以字符 (2 个字节 ) 为单位进行传输 , 如中文字符

3. 类层次结构

 

字节流

字符流

输入流

InputStream

Reader

输出流

OutputStream

Writer

: 所有的流类型均继承于以上四个抽象流类型 . 且所有以 InputStream OutputStream 结尾的均为字节流 , 所有以 Reader Writer 结尾的均为字符流 .

*InputStream 抽象类是所有字节输入流的超类, 子类对此进行了分化和扩展, 类层次结构图为:

<!----><!----><!----> <!----> <!---->

*OutputStream 抽象类是所有字节输出流的超类.InputStream 类相对应

 

*Reader 抽象类是 <!----><!----><!----> <!----> <!---->所有字符输入流的超类

<!----><!----><!----> <!----> <!---->

 

 

 

*Writer 抽象类是所有字符输出流的超类

<!----><!----><!----> <!----> <!---->

 

 

 

 

4. 常用的 I/O 流类型

>FileInputStream FileOutputStream

  FileInputStream 用于读取本地文件中字节数据

  FileOutputStream 用于将字节数据写出到文件中

>FileReader FileWriter

  FileReader 用于以字符为单位读取文件数据

  FileWriter 用于将字符数据写出到文件中 .

>BufferedReader BufferedWriter

  BufferedReader 用于缓冲读取字符 ,BufferedWriter 则提供字符的缓冲写出功能

>InputStreamReader OutputStreamWriter< 处理流类 >

  InputStreamReader 可封装字节输入流并从中读取字节数据 , 然后将其转换为字符 .

  转换时可以在构造方法中设定字符编码 , 也可以使用操作系统的默认字符编码 .

  public InputStreamReader(InputStream in)

  public InputStreamReader(InputStream in,String charsetName)

  OutputStreamWriter InputStreamReader 相对应 , 它可以按照特定的字符编码规则把字符转化为字节并写出到它所封装的字节输出流 .

>PrintStream PrintWriter

  PrintStream OutputStream 基础之上提供了增强的功能 , 即可以方便的输出各种类型的数据 ( 而不仅限于 byte 类型 ).PrintStrem 的方法从不抛出 IOException.

  Printwriter 提供了 PrintStream 的所有打印方法 , 其方法也从不抛出 IOException

PrintStream 的区别 : 作为处理流使用时 ,PrintStream 只能封装 OutputStream 类型的字节流 , PrintWriter 既可以封装 OutputStream, 也能封装 Writer 类型的字符输出流并增强其功能 .

>DataInputStream DataOutputStream

  二者分别实现了 DataInput/DataOutput 接口

  DataInputStream 能够以一种与机器无关的方式 , 直接从底层字节输入流读取 JAVA 基本类型和 String 类型的数据

DataOutputStream 则能够直接将 JAVA 基本类型和 String 类型数据写出到其他的字节输出流 .

   >CharArrayReader CharArrayWriter

CharArrayReader 实现了一个可用作字符输入流的字符缓冲区

CharArrayWriter 实现一个可当作 Writer 使用的字符输出缓冲区 .

    5. 随机读写文件 RandomAccessFile

分享到:
评论

相关推荐

    Java I/O详细笔记

    ### Java I/O详细笔记 #### 一、流的分类 Java I/O系统主要涉及四种基本的流分类方式:根据数据流动的方向、数据处理的类型、流处理的源以及是否使用了缓冲机制。 **1. 按数据流动方向** - **输入流(Input ...

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O

    Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...

    java_I/O流的教程

    本教程详细讲解了这些知识点,并配以代码示例和笔记,旨在帮助学习者逐步掌握Java I/O流的使用,无论你是初学者还是有一定经验的开发者,都能从中受益。通过深入学习和实践,你将能够熟练地处理各种数据输入输出场景...

    Java_IO操作总结

    Java I/O操作是Java编程中不可或缺的一部分,它主要用于数据的输入和输出处理。在这个总结中,我们将深入探讨Java I/O的几个关键知识点。 首先,我们要理解I/O的基本概念。I/O,即Input/Output,指的是计算机系统与...

    java读书笔记笔记笔记笔记笔记笔记

    笔记通常涵盖了语言的基础概念、核心特性、类与对象、内存管理、多线程、异常处理、输入/输出(I/O)系统等方面的内容。 【描述】"别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下" ...

    java学习笔记--PrintStream分享.pdf

    通过对PrintStream和PrintWriter的分析,我们可以看到,Java I/O流是一个非常复杂的系统,但是了解每个组件的作用和使用场景,可以帮助我们更好地使用Java I/O流。 在实际应用中,我们可以使用PrintStream和...

    java学习资料/笔记整理(一)

    手册通常包含Java语法、类库函数、异常处理、集合框架、I/O流、多线程、网络编程等众多内容。熟悉这些内容能帮助开发者快速定位问题,提高编程效率。 最后,Java数据结构与算法是提升程序性能和解决问题的关键。...

    JavaIO:OReilly.Java.I.O.2nd.Edition中文翻译和学习笔记

    O'Reilly的《Java I/O》第二版是一本深入探讨这一主题的经典书籍,它详尽地介绍了Java IO系统的设计、工作原理以及如何有效地使用这些工具。中文翻译和学习笔记的出现,为中文读者提供了极大的便利,能够帮助他们更...

    java超强笔记

    文件I/O操作是任何编程语言都不可或缺的部分,Java也不例外。笔记会讲解如何在Java中读写文件,理解流的概念,以及文件的复制、追加等操作。 在面向对象高级特性的部分,笔记可能包含抽象类、接口、内部类、匿名类...

    Java/JavaEE 学习笔记

    第十四章 标准I/O流与文件.............84 第十五章 网络编程.89 Tiger学习笔记..................94 第一章 Java5.0新特性.......................94 第二章 基础知识.....96 第三章 泛型...........101 第四章 ...

    java笔记本功能实现

    - 文件I/O操作:使用`java.io`包,如`FileWriter`和`BufferedReader`,将笔记内容写入和读取文件。可能需要JSON或XML序列化技术来保存额外的元数据,如撤销历史。 - 文件对话框:`JFileChooser`类提供了一种让用户...

    java全套笔记 来自狂神说java笔录.zip

    11. **Java IO/NIO**:深入理解流的分类,学习非阻塞I/O模型NIO(New Input/Output)。 12. **Java 8及更高版本新特性**:包括Lambda表达式、Stream API、Optional类、日期时间API的改进等。 这些笔记内容全面覆盖...

    良葛格Java JDK 5.0学习笔记

    JDK 5.0引入了新的I/O模型——非阻塞I/O,通过`java.nio`包提供,允许程序在等待数据准备就绪时执行其他任务,提高了I/O操作的性能。 10. **反射(Reflection)** 反射API允许在运行时检查和修改类、接口、字段和...

    Java JDK 7学习笔记 PDF

    5. **NIO.2文件系统API**:引入了`java.nio.file`包,提供了一套新的文件系统操作API,支持文件路径操作、文件属性查询和变更、文件观察等,相比传统的I/O操作更加强大和高效。 6. **字符串拼接优化**:JDK 7对字符...

    达内Java_笔记整理.rar_Java 达内笔记_Java笔记_java 笔记_笔记_达内

    接着,文件I/O、异常处理和集合框架也是Java的重要部分。这部分笔记可能涉及File类、IOException、try-catch-finally语句以及ArrayList、LinkedList、HashMap等集合类的使用。 此外,笔记可能还会涵盖线程与并发,...

    java学习笔记markdown

    Java的I/O流系统用于读写数据,包括字符流和字节流。文件输入输出、网络通信和数据转换都依赖于I/O流。这部分笔记可能详细介绍了`InputStream`、`OutputStream`、`Reader`、`Writer`及其子类,以及缓冲流和转换流的...

    黑马java教程知识点笔记整理

    Java的I/O流体系提供了处理输入输出的机制,包括字符流和字节流。File类用于文件的创建、删除、重命名等操作。 【反射与注解处理】 反射允许在运行时检查类、接口、字段和方法的信息,甚至动态调用方法。注解...

    Java学习笔记PPT

    总的来说,这份"Java学习笔记PPT"是初学者和进阶者学习Java的理想资料,覆盖了语言基础、面向对象、集合框架、异常处理、I/O系统、多线程等多个方面,旨在帮助读者系统地掌握Java编程技能,并能灵活运用到实际项目中...

    用java语言笔记本

    总的来说,"用Java语言笔记本"项目是一个全面学习Java基础知识的理想实践,涵盖了类设计、文件I/O、GUI编程等多个重要领域,对Java初学者来说具有很高的学习价值。通过分析和修改源代码,学习者不仅可以深入理解Java...

Global site tag (gtag.js) - Google Analytics