输入/输出流文件
1.通常程序需要从外部获取/输出信息
2.通过使用java.io包中的输入/输出流类就可以达到输入输出信息的目的
IO流:一旦被创建就会自动打开;通过调用close方法,可以显式关闭任何一个流,如果流对象不再被引用,Java的垃圾回收机制也会隐式地关闭它
读写方法:1.打开一个流2.读/写信息3.关闭流
InputStreamReader读取字节并转换为字符;BufferedReader对另一个流产生的数据进行缓冲
BufferReader in = new BufferReader(newInputStreamReader(System.in))
IO异常 1.在方法头声明抛出IOException异常
2.在try块中执行IO,然后捕获IOException
BufferedWriter类:与FileWriter类都用于输出字符流,包含的方法几乎完全一样,但BufferedWriter多提供了一个newLine()方法用于换行
FileReader类:从文本文件中读取字符;继承自Reader抽象类的子类InputStreamReader
BufferedReader类:读文本文件的缓冲器类;具有readLine()方法,可以对换行符进行鉴别,一行一行地读取输入流中的内容;继承自Reader
文件字节中的内容被解释为字符,称文件为文本文件;被解释成其他含义,则称为二进制文件
OutputStream抽象类
派生类FileOutputStream:用于一般目的输出(非字符输出);用于成组字节输出
派生类DataOutputStream:具有写各种基本数据类型的方法;将数据写到另一个输出流;它在所有的计算机平台上使用同样的数据格式;其中size方法,可作为计数器,统计写入的字节数
读二进制文件:FileInputStream,DataInputStream ,BufferedInputSteam
过滤流:读或写的同时对数据进行处理;通过另外一个流来构造一个过滤流;大部分java.io 包所提供过滤流都是FilterInputStream和FilterOutputStream的子类,如DataInputStream和DataOutputStream ,BufferedInputStream 和BufferedOutputStream ,LineNumberInputStream,PushbackInputStream ,PrintStream
InputStream 类可用于文本文件的存储
File类
压缩流类:java.util.zip包中提供;它们都继承自字节流类OutputStream和InputStream;其中GZIPOutputStream和ZipOutputStream可分别把数据压缩成GZIP格式和Zip格式;GZIPInputStream和ZipInputStream可以分别把压缩成GZIP格式或Zip的数据解压缩恢复原状
GZIPInputStream:父类是DeflaterOutputStream;压缩
ZipInputStream:父类是InflaterInputStream ;解压缩