java学习笔记 字符流Reader与Writer

Writer类与Reader类是以字符流传输数据,一个字符是两个字节

字符流除了是以字符方式(两个字节)传输数据外,另外一点与字节流不同的是字符流使用缓冲区,通过缓冲区再对文件进行操作。字节流字节对文件进行操作。使用字符流类时关闭字符流会强制将字符流缓冲区的类容输出,如果不想关闭也将字符流进行输出,使用Writer类的flush()方法。

字符流的输出与输入操作

import java.io.File;
import java.io.IOException;
import java.io.Writer;
import java.io.FileWriter;
import java.io.Reader;
import java.io.FileReader;

public class Test {
    public static void main(String[] args) {
        try{
                        //使用Writer类可以直接输出字符串            
            FileWriter out = new FileWriter("e:\java\io.txt");
            String str = "你好世界Hello Word!";
            String str1 = "你好世界Hello Word!!";
            out.write(str); 
            out.write("
" + str1);//为什么out.write("
 + str1")不能实现转行?
            out.close();     
        }catch(IOException e) {
            e.printStackTrace();
        }
        try{  
              //在文件后追加写入一个字符串         
            Writer out = new FileWriter("e:\java\io.txt",true);
            String str = "
你好世界Hello Word!!!";
            out.write(str); 
            out.close(); 
            Reader in = new FileReader("e:\java\io.txt");
            int b;
            while ((b = in.read()) != -1) {
                System.out.print((char)b);//字符流传输数据是两个直接,中文可以正确显示出来。    
            }
            in.close();    
        }catch(IOException e) {
            e.printStackTrace();
        } 
    }    
}

r1

缓存区的操作

import java.io.File;
import java.io.IOException;
import java.io.Writer;
import java.io.FileWriter;
import java.io.FileOutputStream;

public class Test {
    public static void main(String[] args) {
        try{
                    String str = "e:\java\bbb.txt";
                    File f = new File(str);
                    FileWriter out = new FileWriter(f);
                    out.write("Hello Word!");
                    out.flush();//将缓存区输出
                    out.close();     
        }catch(IOException e) {
            e.printStackTrace();
        }
    }    
}
原文地址:https://www.cnblogs.com/yhwsy/p/5751371.html