Java IO笔记(IO简述)
(最近刚来到简书平台,以前在CSDN上写的一些东西,也在逐渐的移到这儿来,有些篇幅是很早的时候写下的,因此可能会看到一些内容杂乱的文章,对此深感抱歉,以下为正文)
引子
在学习Java的过程中,IO操作这块儿往往是初学者们需要花费一定时间来仔细学习的地方,因此便有了这个系列的文章诞生了。
正文
在我们的开发过程中,必然会遇到数据的输入、输出,Java 的核心库java.io则为我们提供了全面的IO接口。包括了文件读写,标准设备输出等。这里的IO是指java 1.4没有引入NIO的IO,后面也将另开篇幅对java NIO进行学习。java.io通过数据流,序列化和文件系统等手段来提供系统的输入和输出。
java.io中包含了很多输入输出类型,但并非包含所有,比如GUI中的输入输出以及网页上的输入和输出。java.io主要涉及文件,管道,网络连接,内存缓存以及Java的标准输入输出等(Sytem.out,System.in,System.error)。
这里有一个流的概念,这是Java IO中的一个核心概念,我们可以在数据流中读取数据,也可以通过数据流去向目标写入数据。记得在刚开始接触流的时候总是分不清什么时候使用输入流什么时候输出流,相信这也是初学者们刚开始容易弄混淆的地方。其实只要记住这里的输入、输出是相对你写的程序本身而定义的就会很好区分它们。输入流指你从数据源处读取数据,输出流则是你向目标写入数据。
在java.io中流既可以是字节流也可以是字符流,下图可以简单的表述出其运行状态:
IO流
InputStrem/Reader与源文件进行关联,OutputStream/Writer与目标文件进行关联。
在java.io包中,有着丰富的以上四个基类的子类,来帮助我应付各种情况下的IO操作,具体分为以下几种情况:
- 文件访问。
- 网络访问。
- 内存缓存访问。
- 线程内部通信(管道)。
- 缓冲。
- 过滤。
- 解析。
- 读写文本。
- 读写基本数据类型。
- 读写对象。
下图包括了一些java.io中的一些IO类:
Java IO类
不同的类对应着不同的应用场景,我们需要学会什么时候使用什么样的类来实现我们的需求。
在之后的篇幅中将详细的讲述一些不同情况下IO的使用方法。
以上为本篇的全部内容。