Java IO流系列(二)—— 字符流

来源:互联网 发布:聊天软件遇见 编辑:程序博客网 时间:2024/05/17 16:14

前言:这篇介绍以大家最熟悉的操作文件的字符输入输出流FileWriter,FileReader为例简单介绍字符流的入门使用方式。
原文出处:http://blog.csdn.net/u014158743/article/details/52665409

为使代码清晰,一律用throws先抛出异常。

文件输出流FileWriter

寄新手:向文本文件中写入数据,因为是文本文件,所以使用字符流,又因为是写入,所以使用字符流中的输出流Writer,又因为是文件,所以使用可以操作文件的字符输出流类。下文同,本系列同。

public static void main(String[] args) throws IOException {    //1:创建文件输出流对象和被写入数据的文件相关联    //文件不存在会创建,文件存在会被覆盖    FileWriter  fw = new FileWriter("temp.txt"); //入门语:与.java同级目录    //2:使用文件输出流对象向文件中写入数据    //数据没有写入到文件,写入到流内部的的一个数组,这个数组是一个字节数组,因为要查编码表    fw.write("abcdef");       //3:把内部缓冲中的数据写入到文件    //fw.flush();    fw.write("gh");//刷完之后可以继续写    fw.close();//关闭此流,同时会刷新流中的数据    //fw.write("ww");//流已经关闭,不能继续写入了}

文件的续写

public static void main(String[] args) throws IOException {    // 该平台下分隔符(换行)    final String SEPARATOR = System.getProperty("line.separator");    FileWriter fw = new FileWriter("temp.txt",true);    fw.write("ijklmn");    fw.write(SEPARATOR);    fw.write("hello");    fw.close();}

文件输入流FileReader

public static void main(String[] args) throws IOException{    //创建文件读取流的对象和被读取的文件相关联    FileReader  fr = new FileReader("temp.txt");//被读取的文件需要事先存在    //1、使用一次读一个字符的功能读取    int num;    while((num = fr.read()) != -1) {        System.out.print((char)num);    }    //2、使用数组读取文件    char[] arr = new char[1024];    int num = 0;    while((num = fr.read(arr)) != -1) {        System.out.print(new String(arr, 0, num));    }    fr.close();}

复制文件小Demo:

//复制一个文件import java.io.*;class Demo {    public static void main(String[] args)throws IOException {        //创建文件读取流和被复制的文件相关联        FileReader  fr = new FileReader("temp.txt");        //创建文件输出流和复制的新文件相关联        FileWriter fw = new FileWriter("temp_copy.txt");        char[] arr = new char[1024];        int num;        while((num = fr.read(arr)) != -1) {            fw.write(new String(arr, 0, num));        }        fr.close();        fw.close();    }}

结束语:到这里,相信大家都会了字符流的基本读写,更详细的用法会在后续的文章更新。各位也可以关注我左上角的新浪微博,更新文章我会第一时间发微博通知大家。下篇文章将介绍字符流的缓冲读取流、写入流,欢迎关注。

本系列开启篇:
http://blog.csdn.net/u014158743/article/details/52664986

1 0
原创粉丝点击