java总结

                                                             InputStream基本输入类

InputStream类是基本的输入类。它定义了所有输入流所需的方法。 public abstract int read() throws IOException读取一个字节并以整数的形式返回,0-255。如果 返回-1已到输入流的末尾。 public int read(byte b[]) throws IOException读取一系列字节并存储到一个数组,返回实际读取的 字节数。如果已经读到输入流的末尾则返回-1 public void close() throws IOException 关闭输入流并释放资源

public int read(byte b[],int offset,int length) throws IOException功能为从输入流中读数据。这一 方法有几种重载形式,可以读一个字节或一组字节。当遇到文件尾时,返回-1。最后一种形式中的 offset是指把结果放在b[]中从第offset个字节开始的空间,length为长度 public long skip (long n) throws IOEnception 从输入流跳过几个字节。返回值为实际跳过的字节数

                                                            OutputStream基本输出类

三个重载形式都是用来向输出流写数据的 public abstract void write(int b)向输入流写入一个字节数据,该字节为参数的低8位。 public void write(byte b[],int offset,int length)将一个字节类型的数组中的从指定位置offset开始 的length个字节写入到输出流 public void close( ) 关闭输出流,释放资源 public void write(byte b[])将一个字节类型的数组中的数据写入到输出流 public void flush() 清除缓冲区,将缓冲区内尚未写出的数据全部输出

字符流

在顶层有Reader和Writer两个抽象类。Reader和Writer中定义了read()和write()方法,它们被派生流类 重载 Reader抽象类的定义

Reader抽象类的定义

Writer抽象类的定义

 

字符流Reader

int read()读取一个字符并以整数的形式返回0-65535,如果返回-1则已到输入流末尾

int read(char[] cbuf)读取一系列字符并存储到一个数组中,返回实际读取的字符数,如果读到输入 流末尾则返回-1

void close()关闭输入流并释放内存资源

int read(char[] cbuf, int off, int len) 读取len个字符并存储到一个数组中,从off位置开始,返回实 际读取的字符数,如果读取到输入流末尾则返回-1

long skip(long n)跳过n个字符不读,返回实际跳过的字节数

一般来说:一次读写一个字符效率太低,可以引入char[]数组提高执行效率 练习:编写一个程序,读取文件test.txt的内容并在控制台输出。如果源文件不存在,则显示相应的错误 信息。 练习:编写一个程序实现如下功能,从当前目录下的文件fin.txt中读取80个字节(实际读到的字节数可 能比80少)并将读来的字节写入当前目录下的文件fout.txt 如果使用的是字节流,所以只能保证读取的是80个英文字符,如果中文则会出现问题

                                                               小结

在学些BIO时记忆父类的方法,区分子类的实现不同 InputStream中的方法 read(byte[]):int; Reader中方法read(char[]):int 如果到达流末尾 则-1 OutputStream中的方法 write(byte[],0,len):void;Writer中的方法 write(char[],0,len)/write(String) 一般在使用中,如果读取数据使用字节流,则写出数据采用的也是字节流;不建议混用,除非引入 桥接流 文件流 FileInputStream("file-name") FileInputStream(File) FileNotFoundException FileReader("file-name") FileReader(File) FileNotFoundException FileOutputStream("file-name") FileOutputStream("file-name",true) 默认文件覆盖,如果 参数true表示追加 FileWriter("file-name") FileWriter("file-name",true) 一般不使用单字节或者单字符的操作方法,使用数组 注意:try(){}是推荐写法,否则应该使用try{}finally{}结构保证流的关闭 针对二进制文件不建议使用字符流,建议使用字节流进行操作,否则有可能拷贝文件出现问题:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值