跟采用md5判断没任何联系。
md5只是校验前后是否一致。
md5只是校验前后是否一致。
解决方案 »
- Java中Class<T>与Class<?>之间有何区别
- 请问下应该怎么对java web进行测试?
- java如何读写pdf文件,并转化成二进制文件。
- MyEclipse、 j2sdk-1_4_2、tomcat-4.1.24他们都起着什么作用啊?并且它们是如何在 MyEclipse 中进行配制呢?
- 如何将byte[]转换为二进制?如何再转换回来?
- java安装了以后,它的类库在哪啊?
- 怎么在程序中使用另一个目录下的class?在线等
- Rose是什么?谁给我说说?送分!
- 我用jBuilder5的database控件连接数据库时出现错误。用的是sun.jdbc.odbc.JdbcOdbcDriver驱动和连接jdbc:odbc:myData
- 如何在java中打开windows中的文件选取框?(file choose dialog)?
- 菜鸟问个ide的问题
- 怎么把int型的birth当成字符型用了??
1、先把二进制数据写入Access数据库
2、使用SQLServer2000的导入导出工具导入到SQLServer
3、分别使用JDBC驱动和JDBC-ODBC桥驱动从SQLServer中读取数据并写入到文件
4、分别使用MD5和Ultraedit比较原文件和从数据库中读取到的文件对比1、2步骤可以用使用jdbc-odbc桥驱动写入到数据库SQLServer来替代。实验结论:
SQLServer 2000的JDBC驱动程序在使用ResultSet.getBinaryStream()时得到的InputStream,总是把数据流的最后一个字节重复。
比如如下字节流:01 ab cd ef
在原文件中为: 01 ab cd ef
在数据库中为: 01 ab cd ef
从数据库中使用jdbc-odbc桥驱动读取为:
01 ab cd ef
从数据库中使用jdbc驱动读取为:
01 ab cd ef ef
另外,之所以一开始会让我得出写入时需要减一的结论。是由于正确格式的.torrent(BitTorrent)文件总是以65 65结尾的(即e e)。
也就是说每个文件都是这样的:
...65 65
写入到数据库时减一:
...65
读出时由于jdbc驱动程序的错误重复最后一个字节:
...65 65
如果有需要测试程序,跟我联系就行了,累死我了,为了找到它,从1:15到3:32才找到原因,写出此贴。
微软提供的sqlserver2000的jdbc驱动的源程序我也不想去追究到底在那一行了,累死人。
//这段代码有问题
byte[] b = new byte[1];
while (is.read(b) != -1) {//is.read(b),问题在这里
response.getOutputStream().write(b);
}
//这段代码没问题
int b;
while ( (b = is.read()) != -1) {
response.getOutputStream().write(b);
}