Java中文件流类的继承关系:
【字节流】
【字符流】
从上面的继承关系可以看出,FileWriter类不是直接继承了Writer类,而是继承自Writer的子类(、OutputStreamWriter)这是一个实现字节流到字符流的转换。
也就是说,实际上,从文件中读取的还是字节,只是在内存中将字节转换为了字符。也就是说,字符流用到了缓冲区,但是字节流却没有。可以使用flush()来清空缓冲区。
【管道流】
管道流主要用于连接两个线程间 的通信,也可以分为字节流(PipedInputStream PipedOutputStream)和字符流(PipedReader PipedWriter)
【打印流】
PrintStream 提供了一系列的print和println的方法,可以将基本数据类型转换为字符串输出。在前面的程序中大量用到“System.out.println”语句中的
System.out就是PrintStream类的一个实例对象。
PrintStream(OutputStream out)
PrintStream(OutputStream out,boolean auotflush)
PrintStream(OutputStream out,boolean auotflush, String encoding)
另外还有一个PrintWriter类,
package project ; import java.io.*; public class Main{ public static void main(String[] args) { File file = new File("e://out.txt"); PrintWriter out = null; try { out = new PrintWriter(file); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } out.print("hello world!"); out.close(); } }
这样也可以实现数据的输出文件。
如下:
import java.io.*; public class Main{ public static void main(String[] args) { PrintWriter out = null; out = new PrintWriter(System.out); out.print("hello world!"); out.close(); }
实现了向显示器的输出。
【DataInputStream DataOutputStream】
可以实现按照一定格式输入输出。由于可以得到Java的各种数据类型,可以对数据很好的进行处理。