#java读书笔记#IO流1

14 篇文章 14 订阅


1、IO流概述

(1)用来处理设备(硬盘,控制台,内存)间的数据。

(2)java中对数据的操作都是通过流的方式。

(3)java用于操作流的类都在io包中。

(4)按照流操作的数据的类型不同:分为字节流和字符流。字符流是为了方便中文的操作而来的。

(5)按照流的流向不同分为:输入流,输出流


2、IO流常用基类:

(1)字节流

输出字节流:OutputStream:字节写入流抽象类

|--->FileOutputStream:
字节写入流

|--->BufferedOutputStream:

字节写入流缓冲区

|--->PrintStream:

打印流

输入字节流:InputStream:字节读取流抽象类

|--->FileInputStream:

字节读取流

|--->BufferedInputStream:
字节读取流缓冲区

(2)字符流

输出字符流:Writer:字符写入流的抽象
|--->FileWriter:

字符写入流

|--->BufferedWriter:

字符写入流缓冲区

|--->OutputStreamWriter:

字符通向字节的转换流(涉及键盘录入时用)

|--->OutputStreamWriter:

打印流,可处理各种类型的数据

输入字符流:Reader: 字符读取流的抽象类

|--->FileReader:
字符读取流

|--->LineNumberReader:

跟踪行号的缓冲字符读取流
|--->BufferedReader:

字符读取流缓冲区

|--->InputStreamReader:
字节通向字符的转换流(涉及键盘录入时用)


(3)IO流常用基类方法摘要:

字节写入流:OutputStream:

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

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

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

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

void write(byte[] b, int off, int len) 

将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。 

字节读取流:InputStream:

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

int available() (特有方法!!)

返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。 

abstract  int read() 从输入流中读取数据的下一个字节。 

int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。

int read(byte[] b, int off, int len)  将输入流中最多 len 个数据字节读入 byte 数组。

long skip(long n) 跳过和丢弃此输入流中数据的 n 个字节。
  
字符写入流:Writer:

abstract  void close() 关闭此流,但要先刷新它。

abstract  void flush() 刷新该流的缓冲。

void write(int c) 写入单个字符。

void write(char[] cbuf) 写入字符数组。          

abstract  void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。 

void write(String str) 写入字符串。 

void write(String str, int off, int len) 写入字符串的某一部分。 

字符读取流:Reader:

abstract  void close() 关闭该流并释放与之关联的所有资源。

int read() 读取单个字符。

int read(char[] cbuf)  将字符读入数组

abstract  int read(char[] cbuf, int off, int len) 将字符读入数组的某一部分。

long skip(long n)  跳过字符。 



3、IO流常用字节流基类的子类:

写入流:

(1)FileOutputStream:

构造方法:

FileOutputStream(String name) 

创建一个向具有指定名称的文件中写入数据的输出文件流。

FileOutputStream(String name, boolean append) 

创建一个向具有指定 name 的文件中写入数据的输出文件流。

FileOutputStream(File file) 

创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 

FileOutputStream(File file, boolean append) 

创建一个向指定 File 对象表示的文件中写入数据的文件输出流。


方法摘要:

public void flush()

void close() 关闭此文件输出流并释放与此流有关的所有系统资源。

void write(int b) 将指定字节写入此文件输出流。

void write(byte[] b, int off, int len) 

将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。 

void write(int b) 将指定字节写入此文件输出流。


(2)BufferedOutputStream:

构造方法:

BufferedOutputStream(OutputStream out) 

创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 

BufferedOutputStream(OutputStream out, int size) 

创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。 

方法摘要:

void flush() 刷新此缓冲的输出流。          

void write(byte[] b, int off, int len) 

将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。  void write(int b) 将指定的字节写入此缓冲的输出流。

(3)PrintStream:打印流,可将各种类型的数据原样打印,有自动刷新功能

构造方法:

PrintStream(String fileName) 

创建具有指定文件名称且不带自动行刷新的新打印流。

PrintStream(File file)  创建具有指定文件且不带自动行刷新的新打印流。

PrintStream(OutputStream out) 

创建新的打印流。

PrintStream(OutputStream out, boolean autoFlush) (当autoFlush为true时具有自动刷新功能)

创建新的打印流。


方法摘要: PrintStream append(char c)  将指定字符添加到此输出流。

void close() 

关闭流。  void flush()  刷新该流的缓冲。 void print(各种类型的数据:)  打印各种类型的数据  void println(各种类型的数据:):自动换行 打印各种类型的数据  void write(byte[] buf, int off, int len)  将 len 字节从指定的初始偏移量为 off 的 byte 数组写入此流。  void write(int b)  将指定的字节写入此流。 

读取流:

(1)FileInputStream:


构造方法: FileInputStream(String name)  通过打开一个到实际文件的连接来创建一个 FileInputStream, 该文件通过文件系统中的路径名 name 指定。 FileInputStream(File file)  通过打开一个到实际文件的连接来创建一个 FileInputStream,

该文件通过文件系统中的 File 对象 file 指定。


方法摘要: int available() (字节读取流特有方法!!!) 返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。 int read()  从此输入流中读取一个数据字节。  int read(byte[] b)  从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。  int read(byte[] b, int off, int len)  从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。  long skip(long n) 

从输入流中跳过并丢弃 n 个字节的数据。 


(2)BufferedInputStream:


构造方法: BufferedInputStream(InputStream in)  创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。  BufferedInputStream(InputStream in, int size) 

创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。

 

方法摘要: int available() (字节读取流特有方法!!!) 返回可以从此输入流读取(或跳过)、且不受此输入流接下来的方法调用阻塞的估计字节数。  int read()  参见 InputStream 的 read 方法的常规协定。  int read(byte[] b, int off, int len)  从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。  long skip(long n) 

参见 InputStream 的 skip 方法的常规协定。

大家如果觉得我写的文章还行的话,可以关注我的微信公众号:猿blog(扫描二维码可关注) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhisheng_blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值