Java IO Part 3:基本字节流

J2SE知识点归纳笔记(七)—Java IO Part 3:基本字节流

——转载请注明出处:coder-pig

本节引言:

在上一节中我们学习了控制台输入数据的方法以及对Java IO流体系图进行了初步的了解,

在本节中我们针对性地学习一些基本字节流与字符流的使用~开始本节内容:

1.InputStream与OutputStream的相关方法:

首先要说一点的是:这两个类是抽象类,通过子类来实现各种功能;

数据单位为字节(1 byte = 8bit);下面是相关的方法:

1)InputStream的相关方法:

①public abstract int read( ):读取一个byte的数据,返回值是高位补0的int类型值;

若返回值=-1说明没有读取到任何字节读取工作结束。

②public int read(byte b[ ]):读取b.length个字节的数据放到b数组中。返回值是读取的字节数。 如果流位于文件末尾不在有数据可用,返回-1;等同于read(b,0,b.length)

③public int read(byte b[ ], int off, int len):从输入流中最多读取len个字节的数据,存放到偏移量为off的b数组中,

如果流位于文件末尾不在有数据可用,返回-1;

④public int available( ):返回输入流中可以读取的字节数

ps:若输入阻塞,当前线程将被挂起,如果InputStream对象调用这个方法的话,它只会返回0,

这个方法必须由继承InputStream类的子类对象调用才有用

⑤public int close( ):使用完毕后,关闭流

⑥public long skip(long n):忽略输入流中的n个字节,返回值是实际忽略的字节数,跳过一些字节来读取

⑦public void mark(int readlimit):在此输入流中标记当前位置,如果后续调用reset方法会在最后标记的位置重新定位

此流,以便后续读取重新读取相同的字节,另外参数:readlimit代表:标记失效钱允许读取的字节数

ps:jdk 1.6后貌似没限制多少个字节~

⑧public void reset( ):将流重新定位到最后一次调用mark方法的位置!

⑨public boolean markSupported( ):判断该输入流是否支持mark和reset方法

ps:这里的mark和reset方法,你们可能不是很明白,后面学习BufferedInputStream的时候,

会给大家写个例子,到时你就知道这两个玩意的作用了…

还有,虽然read有三种不同的构造方法,但是建议使用后面两个,第一个少用!!!

2)OutputStream的相关方法:

①public void close( ):关闭此输出流并释放与此流有关的所有系统资源

②public void flush( ):刷新此输出流并强制写出所有缓冲的输出字节

③public abstract void write(int b):将指定的字节写入此输出流

④public void write(byte[] b):将 b.length个字节从指定的byte数组写入此输出流

⑤public void write(byte[] b,int off,int len):将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流

ps:其实这些方法,直接查文档都可以查出来的,笔者也是贴的api上的解析而已~

所以遇到不会用,没见过的方法,先查文档~

2.FileInputStream与FileOutputStream类的使用:

先来介绍字节流的第一个子类:ileInputStream与FileOutputStream类吧!

见名知意:就是以字节的形式对文件进行读写操作;

这里就不贴相关方法了,自行查阅API文档吧,直接上实例:

为何是一个人?也有善意的提醒:

Java IO Part 3:基本字节流

相关文章:

你感兴趣的文章:

标签云: