我正在使用此代码来从Facebook服务器获取我的图像。android和java上的二进制数据套接字
String imageURL = "http://graph.facebook.com/"+id+"/picture?type=large";
InputStream inputStream = new URL(imageURL).openConnection().getInputStream();
DataInputStream dataStream = new DataInputStream(inputStream);
byte[] dataBuffer = new byte[4096];
ByteArrayOutputStream dataHolder = new ByteArrayOutputStream();
int n;
while ((n=dataStream.read(dataBuffer))!=-1){
dataHolder.write(dataBuffer, 0, n);
}
,并使用相同的方法,从我的服务器,让我的形象:
FileInputStream inputStream = new FileInputSTream("/image.jpg");
DataOutputStream dataStream = new DataOutputStream(socket.getOutpustStream());
byte[] dataBuffer = new byte[4096];
int n;
while ((n=inpuStream.read(dataBuffer))!=-1){
dataStream.write(dataBuffer, 0, n);
}//get -1 perfectly
,让他们对Android应用程序是这样的:
DataInputStream dataStream = new DataInputStream(socket.getInputStream());
byte[] dataBuffer = new byte[4096];
ByteArrayOutputStream dataHolder = new ByteArrayOutputStream();
int n;
while ((n=dataStream.read(dataBuffer))!=-1){
dataHolder.write(dataBuffer, 0, n);
}//-1 ??????????????
但Android应用程序不能得到的正确的文件,它不能出来的形式while循环,完全不能得到-1,但昨天我无意中得到-1从我做了一些改变,真的不明白为什么我不能在我的android应用程序-1,但我可以得到它来自 服务器while循环
所有你需要的是来自服务器的图像吧? – Ronnie
你的问题不是很清楚。 Android上的问题是什么?你得到一个无限循环,还是它最终只是阻止? –
是的正确的形象,但如果客户需要大量的图像,clent会请求大量的图像。 –