A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© youc3576 黑马帝   /  2011-9-19 13:02  /  3001 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能帮我看下怎么把这个程序改成一个能够实现从hell.txt里的内容复制到copy.txt文件中。谢谢。。。刚开始。。。菜鸟。。。
package com.youc;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;

public class FileReaderDemo {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
               
                int b = 0 ;
                FileReader re = null ;
                FileWriter wr = null ;
                try {
                        long num = 0;
                        String str = "nihao,ni zain 呵呵";
                        wr = new FileWriter("d:"+File.separator+"hell.txt");
                        wr.write(str);
                        wr.close();
                        for (int i = 0; i < str.length(); i++) {
                                num++;
                        }
                        System.out.println("文件写进去了"+num+"个字节");
                } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                }
               
                try {
                        re = new FileReader("d:"+File.separator+"hell.txt");
                } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                try {
                        long num = 0 ;
                        while ((b=re.read())!=-1) {
                                System.out.print((char)b);
                                num++;
                        }
                        re.close();
                        System.out.println("\n"+"共读取了"+num+"个字符");       
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                        System.exit(-1);
        }

}

7 个回复

正序浏览
黑马网友  发表于 2011-9-19 21:31:48
8#
应该满足楼主的要求吧[code]package IO;

import java.io.*;
public class Test {

    public static void main(String[] args) throws IOException {
           
            File f= new File("G:/ServerDemo.java"); //在这个文件读取数据
            File f2= new File("G:22.txt");          // 复制到这个文件
            if(f2.exists()){                        // 如果文件不存在就创建
                    f2.createNewFile();
            }
           
            FileWriter fw= new FileWriter(f2);
            String line;
            if(f!=null){
                    BufferedReader br= new BufferedReader(new FileReader(f));
                   
                    PrintWriter pw= new PrintWriter( fw,true);
                while(br.readLine()!=null){
                          line=br.readLine();
                          pw.println(line);
                }
            }else{
                    return ;
            }
           
           
           
           
           
           
    }
} [/code]
回复 使用道具 举报
黑马网友  发表于 2011-9-19 16:55:39
7#

回复 藤椅 的帖子

嗯 有那么个意思了。。。。谢谢。。。。
回复 使用道具 举报
黑马网友  发表于 2011-9-19 16:54:30
地板

回复 板凳 的帖子

板凳貌似没明白我的意思。。。我意思要从一个文件里复制内容到另外一个文件里。。。。另外的那个文件可以让系统创建。。。也可以自己手动创建。。。。不过谢谢你的答案。。。。还是可以回顾的
回复 使用道具 举报
黑马网友  发表于 2011-9-19 14:02:01
报纸
授之以渔
【传智播客毕向东Java基础视频教程-day19-03-IO流(通过缓冲区复制文本文件).avi】

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-19 13:48:23
板凳

回复 沙发 的帖子

我写了一个复制文件的方法,不过相比较你的字符流,我是是用字节流在复制
private static void copy(InputStream is, OutputStream os)throws Exception{
                byte[] read = new byte[1024];
                int len = is.read(read);
                while(len!=(-1)){
                        os.write(read,0,len);
                        len = is.read(read);
                }
        }
你可以改进改进再加以应用!
希望能帮到你。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
不知道这个能不能满足你说的意思:
自然这个考虑的不够周全,比如文件内容为空之类的。。
public class SimpleCopy {

        /**
         * @param args
         * @throws IOException
         * @throws FileNotFoundException
         */
        public static void main(String[] args) throws FileNotFoundException, IOException {
                FileInputStream fis = new FileInputStream(new File("hell.txt"));
                BufferedInputStream bis = new BufferedInputStream(fis);
                FileOutputStream fos = new FileOutputStream(new File("copy.txt"));
                BufferedOutputStream bos =new BufferedOutputStream(fos);
                int length=-1;
                while((length=bis.read())!=-1){
                        bos.write(length);
                }
                bos.close();
                bis.close();
        }

}

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-19 13:04:26
沙发

回复 楼主 的帖子

有点感觉就是写不出来。。。想用StringBuffer呢不知道咋下手 了 。。。谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马