一、緩衝區使用
字節流不會用到緩衝區(內存),是文件自己直接操做的,而字符流在操做時使用了緩衝區,經過緩衝區再操做文件,因此使用字符流的時候要加上flush()方法,不然內容不會被寫出去,而是還在內存裏面。以下所示:
- package org.lxh.demo12.chariodemo;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.Writer;
- public class WriterDemo04 {
- public static void main(String[] args) throws Exception { // 異常拋出不處理
- // 第1步:使用File類找到一個文件
- File f = new File("d:" + File.separator + "test.txt");// 聲明File
- 對象
- // 第2步:經過子類實例化父類對象
- Writer out = null;
- // 準備好一個輸出的對象
- out = new FileWriter(f);
- // 經過對象多態性進行實例化
- // 第3步:進行寫操做
- String str = "Hello World!!!";
- // 準備一個字符串
- out.write(str);
- // 將內容輸出
- out.flush();
- // 強制性清空緩衝區中的內容
- // 第4步:關閉輸出流
- // out.close();
- // 此時沒有關閉
- }
- }
字節流則不用加上清空緩存操做:
- public static void main(String[] args) throws Exception { // 異常拋出, 不處理
- // 第1步:使用File類找到一個文件
- File f = new File("d:" + 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();
- // 此時沒有關閉
- }
- }
二、字節流使用更普遍
若是是音頻文件、圖片、歌曲,就用字節流好點,若是是關係到中文(文本)的,用字符流好點