2.Java IO教程--概览

来源:互联网 发布:勇者之塔精灵进阶数据 编辑:程序博客网 时间:2024/05/09 15:18

本文是在Java IO Overview翻译而来。欢迎大家联系我,跟我一起交流。本人水平有限,如果错误欢迎指正。

在本篇文章中,我会努力给你展现java IO包中类的概览。更具体的说,我会试着基于这些类的作用给它们分组。这样分类会使你将来更容易使用它:确定类的作用,或者发现类的特殊作用。

输入和输出–源头和目标

“输入”和“输出”这俩个术语有时候会让你有点迷惑。应用程序的一部分输入常常会是另一个应用程序的输出。输出流是不是就是输出写入的或者来自于你读取的输出呢? 毕竟,输入流 输出数据到读取程序中,不是吗?从我个人而言,在我开始学习java IO的那些日子里,我发现这有点令人困惑。

为了解决这个潜在的疑惑,在输入和输出里,我尝试放入一些不同的名字,试着在输入源和输出去处上概念地联系它们。

Java的IO包大部分关注自身:从源头读取原始数据和向目标写入原始数据。大部分比较典型的数据源头和目标如下:
   -Files-文件
   -Pipes-管道
   -Network Connections-网络连接
   - In-memory Buffers(e.g arrays)-内存缓存(比如数组)
   -System.in,System.out,System.error-系统输入、输出、错误。

下图表明程序从源头读取数据和写数据到目标的原理:
这里写图片描述

输入输出流是java IO的核心概念。在概念上流是数据连续的流动。你可以从流中读取数据或向流写入数据。流是跟输入源和输出目标连接的。Java IO中的流可以字节(读写字节)或者字符(读写字符)。

输入流,输出流,读和写

程序从输入源读取数据的话,就需要输入流InputStream或者阅读器Reader 。程序向输出目标写入数据的话,就需要输出流OutputStream或者阅读器Reader 。阐述如下图:
这里写图片描述
输入源/阅读器关联着数据输入源,输入流/写入器关联着数据输出目标。

Java IO目的和特点

java IO包括输入流、输出流、阅读器和写入器的很多子类。原因是这些子类都指向不同的用途。这就是为什么有这么多不同的类。用途总结如下:
  -文件访问
  -网络访问
  - 内存缓存访问
  -线程间通信(管道)
  -缓存
  -过滤
  -解析
  - 读写文档(阅读器和写入器)
  - 读写原始数据(长整形,整形等)
  - 读写对象
当通过java IO类读取数据时,这些用途很好理解。会使得对类用途的理解有点容易。

Java IO类的表格一览

通过Java IO类,已经讨论了输入源,输出目标,输入,输出和很多的IO用途,下表列出了大部分java IO类(如果不是全部),划分规则为:输入、输出、基于字节或字符、特殊用途–像缓存、解析等。
这里写图片描述

0 0
原创粉丝点击