- InputStreamReader(转换流)(处理流)
- OutputStreamWriter(转换流)(处理流)
- read()返回-1后,说明到达文件尾,不能再读取。read(byte[] buffer ,int offset , int length)返回-1后,说明到达文件尾,不能再读取. 最好都要关闭流 close() ,在finally()关闭并且判断是不是为空,捕获. 在while()里面读在方法里,当read()!=-1是继续读,知道=-1跳出循环
- writer( int b) , writer(byte[] buffer ,int offset , int length),close()跟read方法里面的close()一样, flush()将在流里面的缓冲全部写到目的地
- read()返回-1后,说明到达文件尾,不能再读取。read(byte[] buffer ,int offset , int length)返回-1后,说明到达文件尾,不能再读取. 最好都要关闭流 close() ,在finally()关闭并且判断是不是为空,捕获. 在while()里面读在方法里,当read()!=-1是继续读,知道==-1跳出循环
- 按照数据流的方向不同可以分为:输入流和输出流。
按照处理数据单位不同可以分为:字节流和字符流。
按照实现功能不同可以分为:节点流和处理流。处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。
- writer( int b) , writer(byte[] buffer ,int offset , int length),close()跟read方法里面的close()一样, flush()将在流里面的缓冲全部写到目的地
-
InputStream(字节输入流)
- FileInputStream(字节输入流)(节点流)
- PipedInputStream(字节输入流)(节点流)
- ByteArrayInputStream(字节数组输入流)(节点流)
-
ObjectInputStream(对象流)(处理流)
- 对象序列化:把对象直接转换成二进制,写入介质中。
使用对象流需要实现Serializable接口,否则会报错。而若用transient关键字修饰成员变量,不写入该成员变量,若是引用类型的成员变量为null,值类型的成员变量为0.有readObject()方法可以直接读一个对象
-
FilterInputStream (过滤器字节输入流)
-
DataInputStream(数据流)(处理流)
- 数据流就解决了我们输出数据类型的困难。数据流可以直接输出float类型或long类型,提高了数据读写的效率。
- BufferedInputStream(缓冲字节输入流)(处理流)
-
OutputStream(字节输出流)
- FileOutputStream(字节输出流)(节点流)
- PipedOutputStream(字节输出流)(节点流)
- ByteArrayOutputStream(字节数组输入流)(节点流)
-
ObjectOutputStream(对象流)(处理流)
- 把封装的对象直接输出,而不是一个个在转换成字符串再输出。
-
FilterOutputStream(过滤器字节输出流)
- BufferedOutputStream(缓冲字节输出流)(处理流)
- DataOutputStream(数据流)(处理流)
- printStream(处理流)
-
Writer(字符输出流)
- FileWriter(字符输出流)(节点流)
- PipedWriter(字符输出流)(节点流)
- CharArrayWriter(字符数组输出流)(节点流)
- BufferedWriter(缓冲字符输出流)(处理流)
- printWriter(处理流)
-
Reader(字符输入流)
- FileReader(字符输入流)(节点流)
- PipedReader(字符输入流)(节点流)
- CharArrayReader(字符数组输入流)(节点流)
-
BufferedReader(缓冲字符输入流)(处理流)
- readLine() 可以读一行,等于null时,读完了, 最好都要关闭流 close() ,在finally()关闭并且判断是不是为空,捕获. 在while()里面读在方法里,当read()!=null是继续读,知道==null跳出循环