专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Javase经典基础入门教程:IO流概述

Javase经典基础入门教程:IO流概述

更新时间:2020-03-02 10:44:48 来源:星辉 浏览1658次


  什么是IO,Input和Output,即输入和输出。


  电脑相关的IO设备:和电脑通信的设备,此时要站在电脑的角度,把信息传递给电脑叫输入设备,把电脑信息传递出来的叫输出设备。


  输入设备:麦克风、扫描器、键盘、鼠标等


  输出设备:显示器、打印机、投影仪、耳机、音响等


  为什么程序需要IO呢?


  案例1:打游戏操作,需要存储游戏的信息。


  此时需要把游戏中的数据存储起来,数据只能存储在文件中。


  案例2:打游戏操作,需求读取之前游戏的记录信息,数据存储在一个文件中的。


  此时游戏程序需要去读取文件中的数据,并显示在游戏中。


  IO操作是一个相对的过程,一般的,我们在程序角度来思考(程序的内存)。


  程序需要读取数据:文件——>程序,输入操作


  程序需要保存数据:程序——>文件,输出操作


Javase经典基础入门教程:IO流概述


  1.1.2.IO操作示意图(了解)


  讲解IO知识点的时候,习惯和生活中的水流联系起来,一起来看看复古的水井和水缸。


Javase经典基础入门教程:IO流概述


  此时站在水缸的角度,分析IO的操作方向:


  输入操作:水井——>水缸


  输出操作:水缸——>饭锅


  注意:谁拥有数据,谁就是源,把数据流到哪里,哪里就是目标。那么,请问水缸是源还是目标。


  1.1.3.流的分类(掌握)


  根据流的不同特性,流的划分是不一样的,一般按照如下情况来考虑:


  按流动方向:分为输入流和输出流


  按数据传输单位:分为字节流和字符流,即每次传递一个字节(byte)或一个字符(char)


  按功能上划分:分为节点流和处理流,节点流功能单一,处理流功能更强


  流的流向是相对的,我们一般站在程序的角度:


  程序需要数据→把数据读进来→输入操作(read):读进来


  程序保存数据→把数据写出去→输出操作(write):写出去


  六字箴言:读进来,写出去(仔细揣摩这六个字有什么高深的含义)


  1.1.4.四大基流


Javase经典基础入门教程:IO流概述


  操作IO流的模板:


  1):创建源或者目标对象(挖井).


  输入操作:把文件中的数据流向到程序中,此时文件是源,程序是目标.


  输出操作:把程序中的数据流向到文件中,此时文件是目标,程序是源.


  2):创建IO流对象(水管).


  输入操作:创建输入流对象.


  输出操作:创建输出流对象.


  3):具体的IO操作.


  输入操作:输入流对象的read方法.


  输出操作:输出流对象的write方法.


  4):关闭资源(勿忘).一旦资源关闭之后,就不能使用流对象了,否则报错.


  输入操作:输入流对象.close();


  输出操作:输出流对象.close();


  注意:


  四大抽象流是不能创建对象的,一般的我们根据不同的需求创建他们不同的子类对象,比如操作文件时就使用文件流。


  不管是什么流,操作完毕都必须调用close方法,释放资源。


  1.1.4.1.InputStream(字节输入流)


  类的声明为:publicabstractclassInputStreamextendsObjectimplementsCloseable,表示字节输入流的所有类的超类。


  常用方法:


  publicvoidclose()throwsIOException:关闭此输入流并释放与该流关联的所有系统资源。InputStream的close方法不执行任何操作。


  publicabstractintread()throwsIOException:从输入流中读取一个字节数据并返回该字节数据,如果到达流的末尾,则返回-1。


  publicintread(byte[]buff)throwsIOException:从输入流中读取多个字节数据,并存储在缓冲区数组buff中。返回已读取的字节数量,如果已到达流的末尾,则返回-1。


  1.1.4.2.OutputStream(字节输出流)


  类的声明为:publicabstractclassOutputStreamextendsObjectimplementsCloseable,Flushable,表示字节输出流的所有类的超类。


  常用方法:


  publicvoidclose()throwsIOException:关闭此输出流并释放与此流有关的所有系统资源。


  publicabstractvoidwrite(intb)throwsIOException:将指定的一个字节数据b写入到输出流中。


  publicvoidwrite(byte[]buff)throwsIOException:把数组buff中所有字节数据写入到输出流中。


  publicvoidwrite(byte[]b,intoff,intlen)throwsIOException:把数组buff中从索引off开始的len个字节写入此输出流中。


  1.1.4.3.Reader(字符输入流)


  类的声明为:publicabstractclassReaderextendsObjectimplementsReadable,Closeable,表示字符输入流的所有类的超类。


  常用方法:


  publicabstractvoidclose()throwsIOException:关闭此输入流并释放与该流关联的所有系统资源。


  publicintread()throwsIOException:从输入流中读取一个字符数据并返回该字符数据,如果到达流的末尾,则返回-1。


  publicintread(char[]cbuf)throwsIOException:从输入流中读取多个字符,并存储在缓冲区数组cbuf中。返回已读取的字符数,如果已到达流的末尾,则返回-1。


  1.1.4.4.Writer(字符输出流)


  类的声明为:publicabstractclassWriterextendsObjectimplementsAppendable,Closeable,Flushable,表示字符输出流的所有类的超类。


  常用方法:


  publicabstractvoidflush()throwsIOException:刷新此输出流并强制写出所有缓冲的输出字符。


  publicabstractvoidclose()throwsIOException:关闭此输入流并释放与该流关联的所有系统资源。


  publicvoidwrite(intc)throwsIOException:将指定的一个字符数据c写入到输出流中。


  publicvoidwrite(char[]cbuf)throwsIOException:把数组cbuf中cbuf.length个字符数据写入到输出流中。


  publicabstractvoidwrite(char[]cbuf,intoff,intlen)throwsIOException:把数组cbuf中从索引off开始的len个字符写入此输出流中。


  publicvoidwrite(Stringstr)throwsIOException:将str字符串数据写入到输出流中。


Javase经典基础入门教程:IO流概述


      以上就是星辉Java培训机构小编介绍的“Javase经典基础入门教程:IO流概述”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>