黑马程序员技术交流社区

标题: 关于windows下复制EXE文件 [打印本页]

作者: 雷楚光    时间: 2012-2-22 12:09
标题: 关于windows下复制EXE文件
复制windows下的EXE程序,为什么会从5M变到只有4M了。再把复制的文件再复制一次就没问题。是权限问题,还是读EXE文件没读完就有-1的值。


import java.io.*;
public class field
{
        public static void main(String[] args)throws IOException
        {
                FileReader f=new FileReader("d:\\c.exe");
                FileWriter f1=new FileWriter("d:\\a.exe");
                char[] c=new char[1024];
                int i=0;
                try
                {
                        while ((i=f.read(c))!=-1)
                        {
                                f1.write(c,0,i);
                               
                        }
                } catch (IOException e)
                {
                        System.out.print("1");
                }
                f1.flush();
               
                f.close();
                f1.close();
        }

}
作者: 【专】【属】    时间: 2012-2-22 12:51
把flush方法放到f1.write(c,0,i);后测试一下。
作者: 雷楚光    时间: 2012-2-22 12:57
把flush方法放到f1.write(c,0,i);还是一样的没用
作者: 李晓俊老师    时间: 2012-2-22 13:02
不清楚哦
作者: 黑马唐浩    时间: 2012-2-22 13:05
.exe文件是二进制文件。别用字符流了。直接用字节流
作者: 黄秋    时间: 2012-2-22 13:39
1. 据API:FileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream。
2. 字符流适合处理文本文件,EXE程序显然应该用字节流。
作者: tanlei200620    时间: 2012-2-22 19:41
用 BufferedOutputStream  包装 FileInputStream  ,还有你的资源关闭代码要放在finally块中





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