黑马程序员技术交流社区

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

作者: 张超    时间: 2012-11-11 16:42
标题: k拷贝文件
本帖最后由 zhangchao 于 2012-11-11 18:34 编辑

package SystemIO;
import java.io.*;
class readerwriter {
/**
  *
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  readWriter();
}
public static void readWriter()
{//拷贝一个文件。FileReader和FileWriter的方法都是从父类中继承的,
  FileReader fr=null;
  FileWriter fw=null;
  try {
    fr=new FileReader("D:\\JAVA\\xiazai\\day18\\1111.Java");
    fw=new FileWriter("D:\\JAVA\\xiazai\\day18\\3.java");
   
    char[] cd=new char[1024];
    int len=0;
    fr.read(cd);
    while((len=fr.read(cd))!=-1){////////////////////////////////我的这个能读,怎么不能够写,
     fw.write(cd,0,len);
     sop(String.valueOf(cd)+"0");//返回此字符数组的字符串。

    }  
  }
  catch (IOException e) {
   
   throw new RuntimeException("读写失败");
  }
  finally{
   try{
    if(fr!=null)
     fr.close();
   }
   catch(IOException e){
    System.out.println(e.getMessage());
   }
   try{
    if(fr!=null)
     fw.close();
   }
   catch(IOException e){
    System.out.println(e.getMessage());
   }
   }
  }
public static void  sop(Object obj)
{
  System.out.println(obj);
}
}

作者: jerry2627    时间: 2012-11-11 17:52
你又没刷新流
作者: 张超    时间: 2012-11-11 18:04
jerry2627 发表于 2012-11-11 17:52
你又没刷新流

刷新的我也试过了的,也是不行,你试试看行不行呀。
作者: 葬天    时间: 2012-11-11 18:16
首先,最好按照规范编程,比如类名class readerwriter
其次 红字部分去掉
最后 检查一下文件是不是有问题
fr.read(cd);
    while((len=fr.read(cd))!=-1){////////////////////////////////我的这个能读,怎么不能够写,
     fw.write(cd,0,len);
     sop(String.valueOf(cd)+"0");//返回此字符数组的字符串。

    }  
作者: 张超    时间: 2012-11-11 18:19
葬天 发表于 2012-11-11 18:16
首先,最好按照规范编程,比如类名class readerwriter
其次 红字部分去掉
最后 检查一下文件是不是有问题

好的我试试
作者: 王阳    时间: 2012-11-11 18:28
char[] cd=new char[1024];
    int len=0;
    fr.read(cd);
    while((len=fr.read(cd))!=-1){////////////////////////////////我的这个能读,怎么不能够写,
     fw.write(cd,0,len);
     sop(String.valueOf(cd)+"0");//返回此字符数组的字符串。

把你标红的那段代码删了吧,明显有问题,估计你那个打印语句也有问题,如果你读取的文件大于1KB那么是会读入一些数据的并打印,然后复制到另一个文件的。
但是如果小于1KB的话,那就不会了,因为红色那段代码已经把文件读完了,循环再读取一次,那当然就是-1,自然也就不会进入循环。
作者: jerry2627    时间: 2012-11-11 18:31
不用说了,你的文件都没2M大 第一次就读取完了 循环都没走 怎么能写
作者: jerry2627    时间: 2012-11-11 18:35

   hoho

作者: 冰深    时间: 2012-11-11 19:25
我来了         
作者: 冰深    时间: 2012-11-11 19:26
楼主好大方啊              
作者: 冰深    时间: 2012-11-11 19:26
看来楼主是刚开始学习,代码还是不很规范呢,排版和注释在好一点吧~
作者: 张超    时间: 2012-11-11 21:16
冰深 发表于 2012-11-11 19:26
看来楼主是刚开始学习,代码还是不很规范呢,排版和注释在好一点吧~

谢谢         
作者: 王亚运    时间: 2012-11-11 21:27
本帖最后由 王亚运 于 2012-11-11 21:28 编辑


代码不会看。。
只是想提醒下,贴代码建议用编辑器的插入代码。
读起来方便点。
回帖不是白回。。。{:soso_e141:}
  1. <font size="5">package SystemIO;
  2. import java.io.*;
  3. class readerwriter {
  4. /**
  5. 直接贴代码看起来格式更爽一点,,
  6. */</font>
复制代码





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