📄 toolkit.java
字号:
package fengyun.Fastmail.util;
import java.io.*;
import javax.mail.internet.ParseException;
import fengyun.Fastmail.beans.BeansConstants;
public final class ToolKit {
/**
* 流拷贝
*/
public static int StreamCopy(InputStream in,OutputStream out,int max_len)throws IOException{
int total=0;
if(max_len < 0) max_len = Integer.MAX_VALUE;
if(max_len == 0) return 0;
synchronized(in){
synchronized(out){
byte[] buf = new byte[512];
int nRead=-1;
while(max_len>0){
nRead = in.read(buf);
if(nRead<0) break;
out.write(buf,0,nRead);
total+=nRead;
max_len-=nRead;
}
}
}
return total;
}
public static String encode(String value) {
if(value == null)
return "";
int i = 0;
for(int j = 0; j < value.length(); j++)
i += Character.getNumericValue(value.charAt(j));
String webmastermail = BeansConstants.webmastermail;
for(int k = 0; k < webmastermail.length(); k++)
i += Character.getNumericValue(webmastermail.charAt(k));
String tmp = String.valueOf(i);
for(int l = 0; l < tmp.length(); l++)
i += Character.getNumericValue(tmp.charAt(l));
return String.valueOf(i);
}
/**
* 返回变化后的消息号
*/
public static String getRealMessageID(String MessageID) {
String real = null;
int cur = MessageID.indexOf(".");
if (cur <=0 ) return MessageID;
String flag = MessageID.substring(cur+1,cur+2);
if ("N".equals(flag)) {
real = MessageID.substring(0,cur) + '.' + 'R' + MessageID.substring(cur+2);
return real;
}
else if ("R".equals(flag)) {
real = MessageID.substring(0,cur) + '.' + 'D' + MessageID.substring(cur+2);
return real;
}
return MessageID;
}
/**
* 返回变化后的消息号
*/
public static char getFlag(String MessageID) {
int cur = MessageID.indexOf(".");
if (cur <=0 ) return '*';
String flag = MessageID.substring(cur+1,cur+2);
return flag.charAt(0);
}
/**
* 将一个字符替换成目标字符串
* @param source 源字符串
* @param src 字符
* @param dst 目标字符串
*/
public static String Replace(String source,char src,String dst) {
StringBuffer sBuf = new StringBuffer(source.length()+(source.length()/20)*dst.length()+100);
int offset = 0;
int index = 0;
while(offset<source.length()&&(index = source.indexOf((int)src,offset))>0){
sBuf.append(source.substring(offset,index));
sBuf.append(dst);
offset=index+1;
}
if(offset<source.length())
sBuf.append(source.substring(offset));
return sBuf.toString();
}
/**
* 返回字符集名
*/
public static String getCharSet(String eword) {
if (!eword.startsWith("=?")) // not an encoded word
return null;
// get charset
int start = 2; int pos;
if ((pos = eword.indexOf('?', start)) == -1)
return null;
return javax.mail.internet.MimeUtility.javaCharset(eword.substring(start, pos));
}
/**
* 返回编码形式
*/
public static String getEncoding(String eword) {
if (!eword.startsWith("=?")) // not an encoded word
return null;
int start = 2; int pos;
if ((pos = eword.indexOf('?', start)) == -1)
return null;
// get encoding
start = pos+1;
if ((pos = eword.indexOf('?', start)) == -1)
return null;
return eword.substring(start, pos);
}
/**
* 返回解码后的字符串
*/
public static String getDecodeText(String eword) {
try {
String decodevalue = javax.mail.internet.MimeUtility.decodeText(eword);
String charset = getCharSet(eword);
if (charset != null && !fengyun.Fastmail.beans.BeansConstants.DefaultCharSet.equals(charset)) {
decodevalue = new String(decodevalue.getBytes(charset),fengyun.Fastmail.beans.BeansConstants.DefaultCharSet);
}
return decodevalue;
}
catch(Exception e) {
e.printStackTrace();
return eword;
}
}
public static boolean parseAddress(String address) {
if (address.length() == 0) return true;
int atindex = address.indexOf('@');
int pointindex = address.indexOf('.');
if ( atindex > 0 && atindex < pointindex && pointindex < address.length() - 2) {
return true;
}
else {
return false;
}
}
public static boolean parseAddresses(String addresses) {
boolean valid = true;
int index = 0;
while((index = addresses.indexOf(',')) > 0) {
valid = valid && parseAddress(addresses.substring(0,index));
if (!valid) {
return false;
}
else {
addresses = addresses.substring(index + 1);
}
}
return parseAddress(addresses);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -