java io 学习笔记(一) 字节流

java中将数据读写抽象成流,像水流一样,从而可以方便地扩展。其中重要的几个类:

①抽象类InputStream, OutputStream,它们是原始抽象类。其中InputStream的方法包括read() 从流中读取数据; skip() 跳过一定的字节; available() 返回可用的字节数; mark() 标记一个位置; reset() 返回上一个标记位; marksupport() 是否支持标记复位; close() 关闭流。 其中read() 可以逐字节读,也可加入缓存数组从而更高效地读取。OutputStream的方法包括 write(), 参数类似于read(); flush() 刷空此流; close() 关闭流。

②FileInputStream FileOutputStream 它们用于读写顺序文件。 其中FileInputSteam 打开输入文件, 需要捕获一个FileNotFoundException。FileOutputSteam 打开只读文件时有IOException。

③随机访问文件类 RandomAccessFile ,它比较特殊,直接继承自Object类,并且实现了接口DataInput 和 DataOutput ,可以成组地读取字节。方法有Read[数据类型]() , Write[数据类型](), ReadLine(), SkipBytes), length,getFilePointer(),seek等。

④过滤字节流。FilterInput/OutputStream, 可以对其他缓冲流数据流进行处理。

一类是带缓冲的:BufferedInput/OutputStream, 可以把任意IO流捆绑在其上,提高效率;

另一类是数据过滤:DataInputStream ,它是顺序的数据流。

⑤管道流,必须输入和输出并用,作用是在两个线程之间实现数据传输。

顺序是 管道输出流 ---> 管道pipe ---> 管道输入流

连接方法两种:1 PipedInputStream(PipedOutputStream pos) 或反过来,io其中一个连接了即可。

       2 connect(PipedOutputStream pos)

⑥内存读写流,ByteArrayInputStream ByteArrayOutputStream

⑦序列输入流 将几个输入流顺序连接在一起

猜你喜欢

转载自www.cnblogs.com/jason31/p/9632805.html