InputStream类和OutputStream类
inputStream.read()方法
从输入流中读取数据的下一个字节,如果因为到达末尾而没有可用的字节,返回值为1,就是说,读取完成之后返回-1,告诉我们读取已经完成了。
inputStream.read(byte[] b) 从输入流中读取一定长度的字节,并且以整数的形式返回字节数。
用in代替input stream in.close() 关闭此输入流并且释放与该流关联的所有系统资源。
还有很多
但是
并不是所有的input stream子类都支持inputstream定义的方法
outputstream 输出流
out.write() 将指定的字节写入输出流
()里面可以是 int b byte[] b 将b个字节从指定的的byte数据写入此输出流
或者是(byte b,int off,int len) 总结说就是将 byte数组中从off开始的len个字节都写入输出流
out.close 就是关闭输出流
通俗一点来说,in是读取,out是写入
Fileinputstream和Fileoutputstream
Fileinputstream和Fileoutputstream两个类都是用来操作磁盘文件,如果读取的需要比较简单,就可以使用这两个类,这两个类分别继承于上面的两个类,提供了基本的文件写入能力。
提供的方法是Fileinputstream(String s) 意思是 使用给定的文件名s创建一个Fileinputstream对象
Fileinputstream(File file) 意思是使用File对象创建Fileinputstream对象
java在使用完流之后应该自己关闭(close)所用的流
FileReader和FileWriter
这两个流是补足上面两个流的缺点
因为上面两个流(Fileinputstream和Fileoutputstream)都只提供了对字节或者字节数组的读取方法,但是汉字在文件中占用两个字节,如果使用他们两个流,读取不好就会出现乱码现象,此时采用FileReader和FileWriter类就可以避免乱码现象
使用的时候,FileReader流顺序读取文件,只要不关闭(close)流,每次调用read()方法就会顺序读取其余的内容,直到流的末尾或是流被关闭。
带有缓存的输入输出流 Bufferedinputstreaam和Bufferedoutputstream类
BufferInputStream类可以对所有的InputStream类进行带缓存区的包装以达到性能的优化
BufferInputStream有两个构造方法,(Inputstream in)和(Inputstream in, int size)
第一种是创建一个32字节的缓存流,第二种是按照指定的大小创建缓存区
读取过程是 文件 到 input stream 到 Bufferinputstream 到 目的地
out的构造方法与它完全相同
BufferReader 和 BufferWriter
他们两个分别继承Reader 和Writer 类
BufferReader 里面常用的方法有 read() 读取单个字符
readline()读取一个文本行,将其返回字符串,如果没有读取到数据 就返回null
BufferWriter 常用的构造方法是
write(String s,int off, int len) 按照类似的规则,写入字符串的一部分
flush() 刷新该流的缓存,使用bufferedwriter类的write方法时,数据并没有被写入输出流,而是进入缓存区,如果要立刻将缓存区中的数据写入输出流,一定要调用flush方法。
压缩输入输出流
zipoutputstream 压缩 和 zipinputsream 解压缩
zipoutputstream类的常用方法 有 putnextentry(zipentry e) 开始写入一个新的zipentry并将流内的位置移到此entry所指的数据开头
finish() 完成写入zip输出流的内容,无需关闭他所配合的outputstream
解压缩 Zipinputstream (inputstream in)