📄 receivemsg.java
字号:
package com.yidatone.sms.mina.mccenter;
import java.io.File;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import org.apache.log4j.Logger;
public class ReceiveMsg
{
Logger logger=Logger.getLogger(getClass());
public void GetFileContent(Object message)
{
logger.info("[receive MO msg]:"+message);
String resultMsg=String.valueOf(message);
if(resultMsg.equalsIgnoreCase("0") || resultMsg.equalsIgnoreCase(""))
{
logger.info("message deliver");
}
else
{
String[] msgContentArray=this.parserRecv(String.valueOf(message));
if (msgContentArray != null)
{
try
{
this.WriteFile(msgContentArray);
}
catch (Exception ex)
{
logger.error("[ReceiveMsg->GetFileContent->]:"+ex);
return;
}
}
}
}
/**
* 解析接受消息
* @param recvMsg 发送消息的字符串
* @return S
* @author Gabriel
*/
synchronized public String[] parserRecv(String recvMsg)
{
String[] result = null;
//logger.info("the message before parserRecv--->"+recvMsg);
String[] recv_Enter_First = recvMsg.split("\n");
if (recv_Enter_First.length < 2)
return result;
String recvInfo = recv_Enter_First[0];
String reg = " ";
String[] recv_KONGGE_Second = recvInfo.split(reg);
if (!recv_KONGGE_Second[0].trim().equals("0"))
return result;
int Secondarraylength = recv_KONGGE_Second.length;
result = new String[Secondarraylength];
for (int i = 0; i < (Secondarraylength - 1); i++)
{
String temp = recv_KONGGE_Second[ (i + 1)].replaceAll("\"", reg).trim();
result[i] = temp;
}
result[Secondarraylength - 1] = recv_Enter_First[1];
return result;
}
synchronized public void WriteFile (String [] msgContentArray)
{
try
{
File dir = (File) Client.moDirs.get( (int) (Client.moDirs.size() *Math.random()));
long nowtime = System.currentTimeMillis();
File path = new File(dir.getPath() + "/" + msgContentArray[0] + "MO" + String.valueOf(nowtime));
FileOutputStream fos = new FileOutputStream(path);
FileChannel fc = fos.getChannel();
FileLock fLock = fc.lock(0, 1000, false);
ByteBuffer out = ByteBuffer.allocate(1000);
for (int i = 0; i < msgContentArray.length; i++)
{
out.put(msgContentArray[i].getBytes()).put("\n".getBytes());
}
out.flip();
fc.write(out);
fLock.release();
fc.close();
fos.close();
}
catch(Exception ex)
{
logger.error("[Receivemsg->WriteFile->]:"+ex);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -