字节流与字符流的区别?

  字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 

  实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如下图所示

JAVA中的字节流与字符流

 

  下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。 

  案例1:使用字节流不关闭执行

package byteStream;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

/**
 * 操作字节流
 * @author Administrator
 * 不关闭输出流
 */
public class byteStreamDemo {
    public static void main(String[] args) throws Exception { // 异常抛出, 不处理
        // 第1步:使用File类找到一个文件
        File f = new File("e:" + File.separator + "test"+File.separator+"test.txt"); // 声明File 对象
        // 第2步:通过子类实例化父类对象
        OutputStream out = null;
        // 准备好一个输出的对象
        out = new FileOutputStream(f);
        // 通过对象多态性进行实例化
        // 第3步:进行写操作
        String str = "Hello World!!!";
        // 准备一个字符串
        byte b[] = str.getBytes();
        // 字符串转byte数组
        out.write(b);
        // 将内容输出
        // 第4步:关闭输出流
        // out.close();
        // 此时没有关闭
    }

}
View Code

相关文章: