100 111 99 117 109 101 110 116 46 119 114 105 116 101 40 39
我用url,打开输入流读取,有时就能读取正确,有时就读取成了下面这行序列
-60 -43 -30 -65 -23 -51 -63 -75 -40 -95 -93 6.........
实在让我非常不解啊!!又不是多线程,怎么运行出来每次都不一样么?!!
这两种情况大概每个占一半出现率。。也就是说一半的时候是正确的。。
下面是程序源码
is=url.openStream();
bytesRes = new byte[4024];
Data = new byte[0];
while ((tmp = is.read(bytesRes)) != -1) {
//这个hebing函数的功能是把 bytesRes数组的 tmp个字节加入到data中去
Data = hebing(Data, bytesRes, tmp);
}
is.close();
2 个解决方案
#1
顺便一提,很诡异的是,我把 bytesRes = new byte[4024];
改成 bytesRes = new byte[14024];(网络文本的子节数小于14024)
就一直都正确咯。。。。
改成 bytesRes = new byte[14024];(网络文本的子节数小于14024)
就一直都正确咯。。。。
#2
is=url.openStream();
bytesRes = new byte[4024];
// Data = new byte[0];
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((tmp = is.read(bytesRes)) != -1) {
//这个hebing函数的功能是把 bytesRes数组的 tmp个字节加入到data中去
//Data = hebing(Data, bytesRes, tmp);
output.write(bytesRes, 0, tmp);
}
is.close();
byte[] result = output.toByteArray(); // Here is your expected file data
bytesRes = new byte[4024];
// Data = new byte[0];
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((tmp = is.read(bytesRes)) != -1) {
//这个hebing函数的功能是把 bytesRes数组的 tmp个字节加入到data中去
//Data = hebing(Data, bytesRes, tmp);
output.write(bytesRes, 0, tmp);
}
is.close();
byte[] result = output.toByteArray(); // Here is your expected file data
#1
顺便一提,很诡异的是,我把 bytesRes = new byte[4024];
改成 bytesRes = new byte[14024];(网络文本的子节数小于14024)
就一直都正确咯。。。。
改成 bytesRes = new byte[14024];(网络文本的子节数小于14024)
就一直都正确咯。。。。
#2
is=url.openStream();
bytesRes = new byte[4024];
// Data = new byte[0];
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((tmp = is.read(bytesRes)) != -1) {
//这个hebing函数的功能是把 bytesRes数组的 tmp个字节加入到data中去
//Data = hebing(Data, bytesRes, tmp);
output.write(bytesRes, 0, tmp);
}
is.close();
byte[] result = output.toByteArray(); // Here is your expected file data
bytesRes = new byte[4024];
// Data = new byte[0];
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((tmp = is.read(bytesRes)) != -1) {
//这个hebing函数的功能是把 bytesRes数组的 tmp个字节加入到data中去
//Data = hebing(Data, bytesRes, tmp);
output.write(bytesRes, 0, tmp);
}
is.close();
byte[] result = output.toByteArray(); // Here is your expected file data