80,493
社区成员
发帖
与我相关
我的任务
分享
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();
}
}