黑马程序员技术交流社区

标题: 拷贝文件 [打印本页]

作者: 曹春洋    时间: 2014-1-12 11:36
标题: 拷贝文件
1.所有字符输入流类都是抽象类Reader的子类
Reader的主要方法有:
int read() 从源中读取一个字符的数据,返回字符值
int read(char b[]) 从源中试图读取b.length个字符到b中,返回实际读取的字符数目
void close() 关闭输入流
2.所有字符输出流类都是抽象类Writer的子类

最常用的子类是FileWriter类

Writer的常用方法有:
void write(int n) 向输出流写入单个字符
void write(char b[]) 向输出流写入一个字符数组
void write(String str) 向输出流写入一个字符数组
void close() 关闭输出流




例子:


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

/**
* 使用字符流复制文件。
* @author
*/
public class TestIO {
        public static void main(String[] args) {
                Reader fr = null;
                Writer fw = null;
                try {
                        // 1、创建字符输入流、输出流对象
                        fr = new FileReader("c:\\source.txt");
                        fw = new FileWriter("d:\\target.txt");
                        // 2、创建中转数组
                        char ch[] = new char[1024];
                        int length = 0;
                        // 3、通过循环实现文件复制
                        length = fr.read(ch);
                        while (length != -1) {
                                fw.write(ch, 0, length);
                                length = fr.read(ch);
                        }
                } catch (FileNotFoundException e) {
                        e.printStackTrace();
                } catch (IOException e) {
                        e.printStackTrace();
                } finally {
                        try {
                                // 4、关闭文件输入流、输出流
                                if (null != fr)
                                        fr.close();
                                if (null != fw)
                                        fw.close();
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
        }
}








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