黑马程序员技术交流社区

标题: 字符流拷贝数据的三种方法 [打印本页]

作者: wangjianfeng    时间: 2016-2-23 00:49
标题: 字符流拷贝数据的三种方法
字符流拷贝的第一种推荐方法
FileReader fr = new FileReader( "123.txt");//创建输入流,关联文件
    FileWriter fw = new FileWriter("456.txt" );//创建输入流,关联文件
    char [] arr = new char [1024*8]; //创建char数组,并定义大小
    int len ;
    while ((len = fr.read())!= -1) { //将数据存储到字符数组中
         fw.write(arr, 0, len) ;    //将字符数组里的数据写到文件上
    }
    fr.close(); //关流释放资源
    fw.close();
字符流拷贝的第二种推荐方法
    BufferedReader br = new BufferedReader( new FileReader("123.txt" ));//创建带缓冲输入流,关联文件
    BufferedWriter bw = new BufferedWriter(new FileWriter("345.txt" ));//创建带缓冲输出流,关联文件
    int c ;
    while ((c = br.read())!= -1) { //读取数据
         bw.write(c); //写出数去
    }
    br.close(); //关流
    bw.close();
字符流拷贝的第三种方法,也是字符流拷贝的一种特殊方法
注意:
* BufferedReader的readLine()方法可以读取一行字符(不包含换行符号)
* BufferedWriter的newLine()可以输出一个跨平台的换行符号"\r\n"
所以一旦使用这种方法,这两者都是成对出现,一起使用,而且newLine方法是跨平台的
     BufferedReader br = new BufferedReader( new FileReader("123.txt" ));
    BufferedWriter bw = new BufferedWriter(new FileWriter("456.txt" ));
    String line ;
    while((line = br.readLine())!= null ) {//将字符串整行读出,遇到null则停止读取
         bw.write(line);
         bw.newLine(); //注意:由于整行读取不能读取回车换行符,需要在这里加入回车换行符
    }
    br.close();
    bw.close();





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2