80,490
社区成员
发帖
与我相关
我的任务
分享public class ServerThread implements Runnable {
private LocalServerSocket server = null;
private BufferedReader reader = null;
private LocalSocket connect;
private String readString;
private OutputStreamWriter writer;
private String environmentPath;
private File dir;
public ServerThread() {
environmentPath = getSDPath();
if (environmentPath == null) {
return;
}
dir = new File(environmentPath + "/recordtest");
if (!dir.exists()) { //返回一个布尔值,指示是否可以在下面的文件系统中找到这个文件。
dir.mkdir();
}
}
public String getDate() {
Calendar ca = Calendar.getInstance();
int year = ca.get(Calendar.YEAR); // 获取年份
int month = ca.get(Calendar.MONTH); // 获取月份
int day = ca.get(Calendar.DATE); // 获取日
int minute = ca.get(Calendar.MINUTE); // 分
int hour = ca.get(Calendar.HOUR); // 小时
int second = ca.get(Calendar.SECOND); // 秒
String date = "" + year + (month + 1) + day + hour + minute + second;
return date;
}
public String getSDPath() {
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState()
.equals(android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
return sdDir.toString();
}
return null;
}
@Override
public void run() {
try {
server = new LocalServerSocket(GlobalVariable.SOCKET_ADDRESS);
while (true) {
connect = server.accept();
Credentials peerCredentials = connect.getPeerCredentials();
Log.w("TAG", "accept socket uid:" + peerCredentials.getUid());
reader = new BufferedReader(new InputStreamReader
(connect.getInputStream()));
writer = new OutputStreamWriter(
new FileOutputStream(dir+"/"+getDate()+".mp4"));
while ((readString = reader.readLine()) != null) {
if (readString.equals("finish")) break;
writer.write(readString);
}
writer.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
if (writer != null)
writer.close();
if (connect != null)
connect.close();
if (server != null)
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}