Android客户端接收图片信息的问题!
public void run(){ byte[] temp = new byte[1024]; ByteArrayOutputStream buffer = new ByteArrayOutputStream(); char filename[]= new char[100]; try{ int length; while((length=in.read(temp))!= -1){ buffer.write(temp, 0, length); System.out.println("gets: 2"); } int Size = buffer.size(); System.out.println("buffer长度是:"+Size); byte[] FileInfo = new byte[Size]; for(int c = 0; c < Size; ++c){ FileInfo[c] = 0; } FileInfo = buffer.toByteArray(); for(int z = 0; z<104; ++z){ System.out.println("FileInfo["+z+"] = "+FileInfo[z]); } byte[] ByteFileName=new byte[100]; for(int i = 0; i < ByteFileName.length; ++i){ ByteFileName[i] = 0; } byte[] ByteFileSize = new byte[4]; System.out.println("数组FileInfo长度是:"+FileInfo.length); System.arraycopy(FileInfo, 0, ByteFileSize, 0, 4); System.out.println("gets: 3"); System.arraycopy(FileInfo, 4, ByteFileName, 0, filename.length); for(int b=0; b<filename.length; ++b){ filename[b] = 0; } for(int j = 0; j < ByteFileName.length; ++j){ //打印对比,找出出现方格的地方及原因 System.out.println("ByteFileName["+j+"] = "+ByteFileName[j]); //filename[j] = (char)(ByteFileName[j]); //System.out.println("filename["+j+"] = "+filename[j]); } StringBuffer sBuffer = new StringBuffer(); for(int a = 0; a < filename.length; ++a){ sBuffer.append(filename[a]); } //String s = sBuffer.toString().trim(); String FileName = new String(ByteFileName, "GBK"); int Length = FileInfo.length - 104; byte[] ByteFileData = new byte[Length]; System.arraycopy(FileInfo, 104, ByteFileData, 0, Length); System.out.println("FileName is:"+FileName); //Byte to Int int FileSize = (ByteFileSize[0] & 0xff) | ((ByteFileSize[1] << 8) & 0xff00) // | 表示安位或 | ((ByteFileSize[2] << 24) >>> 8) | (ByteFileSize[3] << 24); System.out.println("FileSize is:"+FileSize); File dir = new File("/data/data/com.FileDemo.Activity/files"); if(!dir.exists()){ dir.mkdirs(); } System.out.println("文件名长度是:"+FileName.length()); File file = new File("/data/data/com.FileDemo.Activity/files/2.bmp"); if(!file.exists()){ file.createNewFile(); } OutputStream os = new FileOutputStream(file); os.write(ByteFileData, 0, ByteFileData.length); os.close(); handler.post(runnableImg); in.close(); sk.close(); //this.destroy(); }catch(Exception e){ e.printStackTrace(); } }
2。我自己创建一个2.bmp的图像文件,把传过来的图片数据往里面写入却不能在模拟器上画出来。这又是什么原因?
求求各位大神的帮助啊,毕业设计的,不能不急啊!
[解决办法]
如需要阅读该回复,请登录或注册CSDN!
如需要阅读该回复,请登录或注册CSDN!
如需要阅读该回复,请登录或注册CSDN!