Java复制二进制文件前后数据不完全一致

问题描述

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class TestClass {public static void main(String[] args) throws IOException {FileInputStream in = new FileInputStream(new File("F:/360Downloads/LoginAction.class"));FileOutputStream out = new FileOutputStream(new File("F:/LoginAction.class"));byte[] temp = new byte[1024];while(in.read(temp)!=-1){out.write(temp);}//out.flush();in.close();out.close();System.out.println("---------------");}}代码其实很简单,就是用java复制二进制文件。我用BCompare.exe比较一下,发现复制后的文件末尾多了一段数据,不知道是什么东西,如何保证复制前后文件二进制数据一模一样?也请解释一下采用上述代码,多出来的那段是什么东西。谢谢!

解决方案

引用while(in.read(temp)!=-1){ out.write(temp); } int len;while((len=in.read(temp))!=-1){out.write(temp,0,len);}
解决方案二:
主要是Java对byte数组的解析问题对于其他的语言来说,比如C#,默认的都是0-128的可是java本身却是0-127的。下面有个URL,你可以参考一下:http://stackoverflow.com/questions/5250324/byte-array-to-string-and-back-issues-with-127就是讨论这个问题的
解决方案三:
最后一段数据是最后一次读取的byte数组没填满造成的 试试写入读取的长度

时间: 2024-10-23 21:12:33

Java复制二进制文件前后数据不完全一致的相关文章

字节流-JAVA用二进制文件类复制图片抛出EOFException

问题描述 JAVA用二进制文件类复制图片抛出EOFException EOFException的意思我知道.我想知道怎么实现每次以4个字节的速度复制图片.用字符流会损坏图片,只能用字节流.字节流的子类DataInputStream和DataOutputStream配合每次就能传4个字节,传视屏不完整,但传图片就抛出EOFException.import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import j

使用VBS修改二进制文件HEX数据

利用VBS修改二进制文件HEX数据.第一个参数为原文件,第二个参数为修改后的文件,第三个参数为原HEX值,第四个参数为修改后的HEX值   可用之处还是有的,如:隐藏快捷方式中目标文件位置:破解XP中TCP/IP连接数限制:去掉RAR右键解压菜单等等. 复制代码 代码如下: Public BinaryData If (lcase(right(wscript.fullname,11))="wscript.exe") Then  WScript.Quit(0) End If If wscr

最适合Java开发者的大数据工具和框架

文章讲的是最适合Java开发者的大数据工具和框架,当今编程人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂.根据外媒的一项调查报告,以下列出了Java程序员在过去12个月内一直使用的一些工具或框架,或许会对你有意义. 先来看看大数据的概念.根据维基百科,大数据是庞大或复杂的数据集的广义术语,因此传统的数据处理程序不足以支持如此庞大的体量. 在许多情况下,使用SQL数据库存储/检索数据都是很好的选择.而现如今的很多情况下,它都不再

java+jquery处理xml数据的方法_AJAX相关

本文实例讲述了java+jquery处理xml数据的方法.分享给大家供大家参考.具体实现方法如下: 1. AjaxJqueryXml.js如下: 复制代码 代码如下: function verify(){      //1.获取文本框中的内容      //jquery查找节点的方式,参数加#加上id属性可以找到一个节点      //jquery的方法返回的都是jquery的对象,可以继续在上面执行其他的jquery方法      var jqueryObj = $("#userName&qu

4种java复制文件的方式_java

尽管Java提供了一个可以处理文件的IO操作类,但是没有一个复制文件的方法.复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候.然而有几种方法可以进行Java文件复制操作,下面列举出4中最受欢迎的方式. 1. 使用FileStreams复制 这是最经典的方式将一个文件的内容复制到另一个文件中. 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B. 这是第一个方法的代码: private static void copyFileUsin

java+jquery处理xml数据的方法

本文实例讲述了java+jquery处理xml数据的方法.分享给大家供大家参考.具体实现方法如下: 1. AjaxJqueryXml.js如下: 复制代码 代码如下:function verify(){      //1.获取文本框中的内容      //jquery查找节点的方式,参数加#加上id属性可以找到一个节点      //jquery的方法返回的都是jquery的对象,可以继续在上面执行其他的jquery方法      var jqueryObj = $("#userName&quo

导入-Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死!

问题描述 Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死! 项目是进行单机版和网络版的数据对比,需要将单机版导出来的数据(excel表格,固定格式)导入网络版进行对比,网络版在导入数据时能提示选择导入的excel文件,不用在Java代码中将要读取数据的excel表格的目录写死.谢谢您的帮助! 解决方案 JAVA读取EXCEL用的比较多的是POI类库,参考Java对Excel(0307)进行上传.解析.验证.入库,或者你搜索一下java poi,有很多文章的

Access6.5在表中复制和粘贴数据

  在城市和省份两个字段里有很多重复的内容每次都输入一遍显得非常麻烦我们可以结合复制和粘贴数据两个命令将一个数据块很方便地放到很多位置上去 首先打开Access 的剪贴板单击视图菜单将鼠标移动到工具选项上在工具选项右边弹出一个菜单单击上面的剪贴板命令屏幕上出现一个剪贴板对话框 复制和粘贴命令就是将一些数据复制到剪贴板上然后再将这些数据从剪贴板上粘贴到我们需要用到这些数据的位置上选中表里的某个数据后在它上面单击鼠标右键并单击弹出菜单上的复制命令选中的内容就被复制到了剪贴板上然后将鼠标移动到一个新位

java对hbase读取数据时运行代码到new htable就不动了,会的大神们可以加Q

问题描述 java对hbase读取数据时运行代码到new htable就不动了,会的大神们可以加Q 解决方案 有人么 大神们 帮忙看看