80,472
社区成员




byte[]mode=new byte[13];//对话0 文件1
while (inputStream!= null) {
for(int i=0;i<13;i++){
try {
mode[i]=(byte)inputStream.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String modestr =new String(mode);
//传送的数据模式 0 对话 1 文件
try {
//对话或文件
int modeCode = Integer.parseInt(modestr.substring(0, 1), 10);
//对话或文件大小
long inLength = Long.parseLong(modestr.substring(1, 11), 10);
//如果是文件的话文件名长度
int nameLength = Integer.parseInt(modestr.substring(11, 13), 10);
byte[] fileName = new byte[nameLength];
byte[] mgs = new byte[new Long(inLength).intValue()];
//设置buff缓存为512字节
int inTime=(int)(inLength/512);
int inTimeResidue=(int)(inLength%512);
if (modeCode == 0) {
for (int i = 0; i < inLength; i++) {
try {
mgs[i] = (byte) inputStream.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
reviceMgs = new String(mgs,"UTF-8");
Log.e("收到数据", reviceMgs.toString());
handler.sendEmptyMessage(1);
// ET_print.getText().append("\n"+new String(mgs));
} else if (modeCode == 1) {
for (int i = 0; i < nameLength; i++) {
try {
fileName[i] = (byte) inputStream.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
reviceName = new String(fileName,"UTF-8");
Log.e("收到文件名", reviceName.toString());
// handler.sendEmptyMessage(1);
dir = new File("/mnt/sdcard/WifiSocketDownload/"+reviceName);
File file = new File("/mnt/sdcard/WifiSocketDownload");
if (!file.exists()) {
try {
//按照指定的路径创建文件夹
file.mkdirs();
Log.e("创建文件夹成功",file.toString());
} catch (Exception e) {
// TODO: handle exception
Log.e("创建文件夹失败","创建文件夹失败");
}
}
if (!dir.exists()) {
try {
//在指定的文件夹中创建文件
dir.createNewFile();
Log.e("创建文件成功",dir.toString());
} catch (Exception e) {
Log.e("创建文件失败","创建文件失败");
}
}
if(inTime>=0&&inTimeResidue>0) {
byte[] buffer = new byte[512];
reciveTime= 0;
for (int i = 0; i < inTime + 1; i++) {
for (int k = 0; k < 512; k++) {
try {
buffer[k] = (byte) inputStream.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
writeFileSdcard(dir, buffer);
handler.sendEmptyMessage(99);
}
}else if(inTime>=0&&inTimeResidue==0){
byte[] buffer = new byte[512];
reciveTime= 0;
for (int i = 0; i < inTime ; i++) {
for (int k = 0; k < 512; k++) {
try {
buffer[k] = (byte) inputStream.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
writeFileSdcard(dir, buffer);
handler.sendEmptyMessage(99);
}
}
handler.sendEmptyMessage(98);
}
}catch (Exception e){
}