1.1. IO流概述(了解)1.1.1. IO概述(了解)
什么是IO,Input和Output,即输入和输出。
电脑相关的IO设备:和电脑通讯的设备,此刻要站在电脑的视点,把信息传递给电脑叫输入设备,把电脑信息传递出来的叫输出设备。
输入设备:麦克风、扫描器、键盘、鼠标等
输出设备:显现器、打印机、投影仪、耳机、音响等
为什么程序需求IO呢?
事例1:打游戏操作,需求存储游戏的信息。此刻需求把游戏中的数据存储起来,数据只能存储在文件中。
事例2:打游戏操作,需求读取之前游戏的记载信息,数据存储在一个文件中的。此刻游戏程序需求去读取文件中的数据,并显现在游戏中。
IO操作是一个相对的进程,一般的,咱们在程序视点来考虑(程序的内存)。
程序需求读取数据:文件——>程序,输入操作
程序需求保存数据:程序——>文件,输出操作
1.1.2. IO操作示意图(了解)
解说IO知识点的时分,习气和日子中的水流联系起来,一同来看看复古的水井和水缸。
此刻站在水缸的视点,剖析IO的操作方向:
输入操作:水井——>水缸
输出操作:水缸——>饭锅
留意:谁具有数据,谁就是源,把数据流到哪里,哪里就是方针。那么,请问水缸是源仍是方针。1.1.3. 流的分类(把握)
依据流的不同特性,流的区分是不一样的,一般依照如下状况来考虑:
按活动方向:分为输入流和输出流
按数据传输单位:分为字节省和字符流,即每次传递一个字节(byte)或一个字符(char)
按功用上区分:分为节点流和处理流,节点流功用单一,处理流功用更强
流的流向是相对的,咱们一般站在程序的视点:
程序需求数据 → 把数据读进来 →输入操作(read):读进来
程序保存数据 → 把数据写出去 → 输出操作(write):写出去
六字告诫:读进来,写出去(细心揣摩这六个字有什么深邃的意义)1.1.4. 四大基流
操作IO流的模板:
1):创立源或许方针方针(挖井).
输入操作: 把文件中的数据流向到程序中,此刻文件是源,程序是方针.
输出操作: 把程序中的数据流向到文件中,此刻文件是方针,程序是源.
2):创立IO流方针(水管).
输入操作: 创立输入流方针.
输出操作: 创立输出流方针.
3):详细的IO操作.
输入操作: 输入流方针的read办法.
输出操作: 输出流方针的write办法.
4):封闭资源(勿忘). 一旦资源封闭之后,就不能运用流方针了,不然报错.
输入操作: 输入流方针.close();
输出操作: 输出流方针.close();
留意:
四大笼统流是不能创立方针的,一般的咱们依据不同的需求创立他们不同的子类方针,比方操作文件时就运用文件流。
不论是什么流,操作结束都必须调用close办法,开释资源。1.1.4.1. InputStream(字节输入流)
类的声明为:public abstract class InputStream extends Object implements Closeable,表明字节输入流的一切类的超类。
常用办法:
public void close() throws IOException:封闭此输入流并开释与该流相关的一切系统资源。 InputStream 的 close 办法不履行任何操作。
public abstract int read() throws IOException:从输入流中读取一个字节数据并回来该字节数据,假如抵达流的结尾,则回来 -1。
public int read(byte[] buff) throws IOException:从输入流中读取多个字节数据,并存储在缓冲区数组 buff 中。回来已读取的字节数量,假如已抵达流的结尾,则回来 -1。1.1.4.2. OutputStream(字节输出流)
类的声明为:public abstract class OutputStream extends Object implements Closeable, Flushable,表明字节输出流的一切类的超类。
常用办法:
public void close() throws IOException:封闭此输出流并开释与此流有关的一切系统资源。
public abstract void write(int b) throws IOException:将指定的一个字节数据b写入到输出流中。
public void write(byte[] buff) throws IOException:把数组buff中一切字节数据写入到输出流中。
public void write(byte[] b, int off,int len) throws IOException:把数组buff中从索引off 开端的len 个字节写入此输出流中。1.1.4.3. Reader(字符输入流)
类的声明为:public abstract class Reader extends Object implements Readable, Closeable,表明字符输入流的一切类的超类。
常用办法:
public abstract void close() throws IOException:封闭此输入流并开释与该流相关的一切系统资源。
public int read() throws IOException:从输入流中读取一个字符数据并回来该字符数据,假如抵达流的结尾,则回来 -1。
public int read(char[] cbuf) throws IOException:从输入流中读取多个字符,并存储在缓冲区数组 cbuf 中。回来已读取的字符数,假如已抵达流的结尾,则回来 -1。1.1.4.4. Writer(字符输出流)
类的声明为:public abstract class Writer extends Object implements Appendable, Closeable, Flushable,表明字符输出流的一切类的超类。
常用办法:
public abstract void flush() throws IOException:改写此输出流并强制写出一切缓冲的输出字符。
public abstract void close() throws IOException:封闭此输入流并开释与该流相关的一切系统资源。
public void write(int c) throws IOException:将指定的一个字符数据c写入到输出流中。
public void write(char[] cbuf) throws IOException:把数组cbuf中cbuf.length 个字符数据写入到输出流中。
public abstract void write(char[] cbuf, int off,int len) throws IOException:把数组cbuf中从索引off 开端的len 个字符写入此输出流中。
public void write(String str) throws IOException:将str字符串数据写入到输出流中。
本系列教程为叩丁狼Java根底班内部教材,若要取得最好的学习效果,需求合作对应教育视频一同学习。需求完好教育视频,请私信作者。