Java IO流之字符流

1.字符输出流 Writer(只能写入文本文件)

1.1FileWriter类(writer的子类)

构造方法:

public class FileWriterDemo {

public static void main(String[] args) throws IOException {
        //演示FileWriter 用于操作文件的便捷类。
        FileWriter fw = new FileWriter("d:\\text\\fw.txt");
        fw.write("你好谢谢再见");//这些文字都要先编码。都写入到了流的缓冲区中。
        fw.flush();  //如果不刷新,数据不会到达目的地
     //写一个字符数组
     char[] c = {'a','b','c','d','e'};
      fw.write(c);
      fw.flush();
     //写数组一部分
      fw.write(c,2,2);
      fw.flush();
fw.close(); } }
//flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,流还可以继续使用。

//刷新内存,将内存中的数据立刻写出。
//在最后工作完成时调用close()也可以刷新内存

//flush() 与 close() 区别在于 close()会关闭流,flush()一般用于处理中时需要将数据立即写出。

2.字符输入流Reader

构造方法

2.1FileReader

读取文件

package habin.file;
import java.io.FileReader;
import java.io.IOException;


public class FileDemo {
    public static void main(String[] args) throws IOException {    
        
        FileReader fr = new FileReader("d:\\a.txt");
        int len = 0;
        while((len=fr.read())!=-1){
            System.out.print((char)len);
        }
        fr.close();
    }
}

3.文件复制:

package habin.file;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileDemo {
    public static void main(String[] args) throws IOException {    
        
        File file1 = new File("d:\\a.txt");
        File file2 = new File("f:\\b.txt");
        
        FileReader fr = new FileReader(file1);
        FileWriter fw = new FileWriter(file2);
        char[] c = new char[2014];
        int len = 0;
        while((len=fr.read(c))!=-1){
            fw.write(c,0,len);
            fw.flush();
        }
        fw.close();
        fr.close();
    }
}

上述代码实现将d盘下a.txt文件中的数据复制到了f盘下的b.txt中

posted on 2018-12-05 16:25  Black_m  阅读(587)  评论(0编辑  收藏  举报

导航