出现这个问题的原因就是,提问者用的是字符流,实际不确定文件类型的时候,需要用字节流进行传递,之后会原样输出,否则会有错误。举例:FileInputStream fis = new FileInputStream("D:/test.pdf");//要进行复制的文件读取 FileOutputStream fos = new FileOutputStream("D:/testFinal.pdf");//要...
java复制生成的pdf文件打不开,该如何处理
使用文件流来操作
FileInputStream fis = new FileInputStream("C:/a.pdf");FileOutputStream fos = new FileOutputStream("D:/copy.pdf");int length = 0;byte[] buffer = new byte[1024]; // 一字节缓冲while((length=fis.read(buffer)) != -1){ fos.write(buffer, 0, length);}fos.close();fis.close();2014-11-06
出现这个问题的原因就是,提问者用的是字符流,实际不确定文件类型的时候,需要用字节流进行传递,之后会原样输出,否则会有错误。举例:
FileInputStream fis = new FileInputStream("D:/test.pdf");//要进行复制的文件读取
FileOutputStream fos = new FileOutputStream("D:/testFinal.pdf");//要保存的文件
int length = 0;//初始化流长度
byte[] buffer = new byte[2024]; // 缓存字节设置为2m
while((length=fis.read(buffer)) != -1){//如果内容长度不是空
fos.write(buffer, 0, length);//写入到新文件
}
fos.close();//关闭不用的流
fis.close();//关闭不需要的流
备注:IO流在使用完成后,一定要通过close方法及时关闭。2015-06-27
复制的代码有问题,要用字节流,不要用字符流复制2014-11-06