当前位置: 代码迷 >> J2EE >> 这样读写文件为什么文件总是会比原来的小?头疼。解决方法
  详细解决方案

这样读写文件为什么文件总是会比原来的小?头疼。解决方法

热度:139   发布时间:2016-04-22 03:13:19.0
这样读写文件为什么文件总是会比原来的小?头疼。。。
Java code
public class Stream {    public static void main(String[] args) throws IOException {        FileInputStream in = new FileInputStream(new File("F:\\a.exe"));        FileOutputStream out = new FileOutputStream(new File("C:\\b.exe"));        System.out.println(in.available());        byte buf[] = new byte[1024];        int size = -1;        int sum = in.available();        while ((size=in.read(buf,0,buf.length)) != -1) {            if(size < 1024){//                System.out.println("再写入-->"+size);                out.write(size);            }else{//                System.out.println("写入-->" + size);                out.write(buf);            }        }        out.flush();        out.close();        in.close();    }}


b.exe 总是会比 a.exe 小那么几百个字节,不知道这样写是否正确???请教高手。。。


------解决方案--------------------
不知道你想干什么,如果只是复制文件,保持文件大小一致的话:

Java code
public class Stream {    public static void main(String[] args) throws IOException {        FileInputStream in = new FileInputStream(new File("F:\\a.exe"));        FileOutputStream out = new FileOutputStream(new File("C:\\b.exe"));        System.out.println(in.available());        byte buf[] = new byte[1024];        int size = -1;        int sum = in.available();        while ((size=in.read(buf,0,buf.length)) != -1) {            out.write(buf,0,size);                    }        out.flush();        out.close();        in.close();    }}
  相关解决方案