IO读取文件可以通过字符流(char)和字节流(byte)两种方式。有InputStream、OutputStream、Reader、Writer。前两者是通过字节流进行读取的,后两者是通过字符流进行读取的。
以文件操作为例,主要的操作流程如下:
A、使用File类打开一个文件
B、通过字节流或者字符流的子类,指定输出的位置
C、进行读写操作
D、关闭输入输出
1、输出流 Writer类可以直接读进String类、OutputStream可以将字符串变为字节byte读入
字节流与字符流:
String str="nHello Today";
OutputStream out1=null;
out1=new FileOutputStream(f);
byte b[]=str.getBytes();//将字节转化为字符串
out1.write(b);//读进字节
Writer out=null;
out=new FileWriter(f,true);
out.write(str);//直接读入字符串
2、字节流和字符流的区别
字节流在操作的时候是直接与文件本身操作的,而字符流在操作的时候是使用到缓冲区的。
例如:在使用字节流操作中,即使没有关闭{out.close()}最终也是可以输出结果。
但是在使用字符流操作时,如果没有关闭{out.close()},这是就没有结果输出来。也就是说所有的内容保存在了缓冲区之中,而如果执行关闭的时候会强制性的刷新缓冲区,就可以把内容输出。例如:out.flush();