今天更新了代码,标注一些遇到的问题。
1.\n与\r\n。
'\r'是回车,前者使光标到行首(carriage return);'\n'是换行,后者使光标下移一格(line feed);对于换行这个动作,Unix下一般只有一个0x0A表示换行("\n"),windows下一般都是0x0D和0x0A两个字符("\r\n"),苹果(MAC OS系统)则采用回车符CR表示下一行(\r)。如果直接用System.out.println,在对接时格式会很乱。
2.实现top。
一开始偷懒没实现top,但是会出现不能读到邮件的问题。猜想是因为读邮件需要用到指令top,以便查看邮件的简要信息。实现如下:
public static String getMessage(String content, String keyWord) {
int indexKey = content.indexOf(keyWord);//获得"Date""From""To"等的第一次出现的首字母位置
if(indexKey == -1) return "";
int len = content.length();
String keyMessage = new String();
for (int i = indexKey; i < len-1; i++) {
int indexKey2 = content.indexOf("\r\n",indexKey);//获得"\r\n"的位置,并以此作为判断
if(indexKey2 == -1) return "";
if(i == indexKey2) {
break;
}
keyMessage += content.charAt(i);
}
return keyMessage;
}