首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

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

2012-01-05 
这样读写文件为什么文件总是会比原来的小?头疼。。。Java codepublic class Stream {public static void main

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

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();    }} 

热点排行