我正在使用此代碼來從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會請求大量的圖像。 –