⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tools.java

📁 封装了SQL、Socket、WAP、MIME等功能的通用组件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * @param off
     * @param length
     * @return
     */
    public static final byte[] truncate(byte[] buffer, int off, int length)
    {
        int nSize = 0;
        if( buffer.length < length + off )
        {
            nSize = buffer.length - off;
        }
        else
        {
            nSize = length;
        }

        byte[] buf = new byte[nSize];
        for(int i = 0; i < nSize; i++ )
        {
            buf[i] = buffer[off+i];
        }
        return buf;
    }

    public static final String getIP(int ip)
    {
        return getIP(Tools.intToBytes(ip, 4));
    }
    public static final String getIP(byte[] buf)
    {
        StringBuffer buffer = new StringBuffer();
        for(int i = 0; i < buf.length; i++ )
        {
            buffer.append(buf[i]<0?(0x0100+buf[i]):buf[i]);
            if( i+1 < buf.length )
                buffer.append(".");
        }

        return buffer.toString();
    }
    /**
     * 得到持续时间,如果
     * @param duration
     * @return d天 HH:mm:ss
     */
    public static final String getDuration(long duration)
    {
        duration = System.currentTimeMillis() - duration;
        if( duration > 0 )
        {
            return (duration/MILLI_OF_DAY)+"天 "+getSmartTime((int)(duration%MILLI_OF_DAY)/1000);
        }
        return "0天00:00:00";
    }

    public static final String getDuration(int duration)
    {
        duration = current() - duration;
        if( duration > 0 )
        {
            return (duration/SECOND_OF_DAY)+"天 "+getSmartTime(duration%SECOND_OF_DAY);
        }
        return "0天00:00:00";
    }

    public static final int current()
    {
        return (int)(System.currentTimeMillis()/1000);
    }

    public static final String toUnicode(byte[] buf)
    {
        int i = buf.length / 2;
        char[] cs = new char[i];
        int j;
        for (j = 0; j < i; j++) {
            cs[j] = (char) (buf[ 2*j+1 ] & 0xff);
            cs[j] <<= 8;
            cs[j] += (char) (buf[ 2*j ] & 0xff);
        }
        return new String(cs);
 /*       try
        {
            return  new String(buf, "Unicode");
        }
        catch(Exception e)
        {
            return "";
        }*/
    }

    public static final byte[] toUnicode(String source)
    {
        byte[] des = null;
        int bytesCount = source.length() * 2;
        if (bytesCount >= 1) {
            des = new byte[bytesCount];
            char charTemp;
            for (int index = 0; index < source.length(); index++) {
                charTemp = source.charAt(index);
                des[index * 2 + 1] = (byte) (charTemp >>> 8 & 0xff);
                des[index * 2] = (byte) (charTemp & 0xff);
            }
        }
        else
            des = new byte[0];
        return (des);
 /*       try
        {
            return str.getBytes("Unicode");
        }
        catch(Exception e)
        {
            return new byte[0];
        }*/
    }

    public static final void printb(byte[] buffer)
    {
        printb(buffer, 0, buffer.length);
    }
    public static final void printb(byte[] buffer, int offset, int length)
    {
        StringBuffer sb = new StringBuffer();
        for (int i = offset; i < buffer.length && i < length; i++)
        {
            //System.out.println("if( i + 1("+(i+1)+") == buffer.length("+buffer.length+") )  ");
            sb.append("0x");
            int k = buffer[i] < 0 ? 256 + buffer[i] : buffer[i];
            if( k < 0x10 ) sb.append('0');
            sb.append(Integer.toHexString(k));
            sb.append(" ");

            if( i%8 == 7 ) sb.append(" ");
            if( i%16 == 15 ) sb.append('\n');

            if( i + 1 == buffer.length )
            {
                if( i%16 != 0 ) sb.append('\n');
                System.out.println(sb.toString());
                return;
            }
        }
        System.out.println(sb.toString());
    }

    public static final String getUnicode(byte[] buffer)
    {
        StringBuffer buf = new StringBuffer();
        for(int i = 0; i < buffer.length; i++ )
        {
            if( i%2 == 0 )
                buf.append("\\u");
            buf.append(Integer.toHexString(buffer[i]<0?0x0100+buffer[i]:buffer[i]));
        }
        return buf.toString();
    }

    /**
     * 得到生日
     * @param age
     * @return
     */
    public static final int getBirthday(int age)
    {
        Calendar now = Calendar.getInstance();
        int year = now.get(Calendar.YEAR)-age;
        now.set(year, 0, 1);
        return (int)(now.getTimeInMillis()/1000);
    }

    public static final int getAge(int birthday)
    {
        return getAge(((long)birthday)*1000);
    }

    public static final int getAge(long birthday)
    {
        java.util.Calendar now = java.util.Calendar.getInstance();
        int year = now.get(Calendar.YEAR);
        now.setTimeInMillis(birthday);
        return year - now.get(Calendar.YEAR);
    }

    public static final String getBytesString(byte[] buffer)
    {
        StringBuffer sb = new StringBuffer();
        for(int i = 0;i < buffer.length; i++ )
        {
            sb.append(Integer.toHexString(buffer[i]<0?0x0100+buffer[i]:buffer[i]));
            sb.append(" ");
        }

        return sb.toString();
    }


    public static java.text.DecimalFormat DFORMAT = new java.text.DecimalFormat("0.00 KB");
    public static java.text.DecimalFormat DF = new java.text.DecimalFormat("0.00");
    public static final String getDecimalStr(int d)
    {
        double d1 = d;
        return DF.format(d1/100);
    }

    public static final String getKBStr(long size)
    {
        double d = size;
        return DFORMAT.format(d/1024);
    }

    public static String trim(String content)
    {
        StringBuffer newContent = new StringBuffer(content.trim());
        int i = 0;
        for( ; i< newContent.length(); i++ )
        {
            if( newContent.charAt(i) != ' ' &&
                newContent.charAt(i) != ' ')
            {
                break;
            }
        }
        return newContent.substring(i);
    }

    public static String getUniqueValue()
    {
        StringBuffer stringbuffer = new StringBuffer();
        int code = stringbuffer.hashCode()>>8;
        stringbuffer.append(Integer.toHexString(code)).
            append(Long.toHexString(System.currentTimeMillis()>>16));
        return stringbuffer.toString();
    }

    public static final String checkHttpUri(String url, String prefix)
    {
//System.out.print(url);
        String u = url;
        if( u == null ) return null;
        u = u.trim();
        if( u.length() == 0 ) return null;
        //u = u.toLowerCase();

        int k = 0, j = 0;
        if( u.length() > k && u.charAt(k) == 'h' ) k+=1;
        if( u.length() > k && u.charAt(k) == 't' ) k+=1;
        if( u.length() > k && u.charAt(k) == 't' ) k+=1;
        if( u.length() > k && u.charAt(k) == 'p' ) k+=1;
        if( u.length() > k && u.charAt(k) == ':' ){
            k += 1;
            j += 1;
        }
        if( u.length() > k && u.charAt(k) == '/' ){
            k += 1;
            j += 1;
        }
        if( u.length() > k && u.charAt(k) == '/' ){
            k += 1;
            j += 1;
        }

//System.out.println(j+","+k);
        if( j>= 2 && k < 4 ) k = 0;
        if( j < 2 && k < 5 ) k = 0;
        if( j == 0 ) k = 0;
        if( k >= u.length() ) return null;
        if( j >= u.length() ) return null;
        //System.out.println(j+","+k);
        if( u.charAt(k) == '/' ) k += 1;

        if( k != 7 ) u = prefix + u.substring(k);

        int i = u.lastIndexOf("/");
//System.out.println(i+" , "+u.substring(0, i));
        if( i == u.length() - 1) u = u.substring(0, i);
//System.out.println(u);
        return u;
    }

    public static final String decodeUnicode(String src, char sper)
    {
        StringBuffer sb = new StringBuffer();
        int i = 0;
        while( i < src.length() )
        {
            char c = src.charAt(i++);
            //System.out.println(c);
            if( c == sper )
            {
                String s = src.substring(i, i+2);
                //System.out.println(s);
                c = (char)Tools.getH2D(s);
                i += 2;
            }
            sb.append(c);
        }
        return sb.toString();
    }

    public static final String checkHttpUri(String url)
    {
        String u = url;
        if( u == null ) return null;
        u = u.trim();
        if( u.length() == 0 ) return null;
        //u = u.toLowerCase();

        int k = 0, j = 0;
        if( u.length() > k && u.charAt(k) == 'h' ) k+=1;
        if( u.length() > k && u.charAt(k) == 't' ) k+=1;
        if( u.length() > k && u.charAt(k) == 't' ) k+=1;
        if( u.length() > k && u.charAt(k) == 'p' ) k+=1;
        if( u.length() > k && u.charAt(k) == ':' ){
            k += 1;
            j += 1;
        }
        if( u.length() > k && u.charAt(k) == '/' ){
            k += 1;
            j += 1;
        }
        if( u.length() > k && u.charAt(k) == '/' ){
            k += 1;
            j += 1;
        }

//System.out.println(j+","+k);
        if( j>= 2 && k < 4 ) k = 0;
        if( j < 2 && k < 5 ) k = 0;
        if( j == 0 ) k = 0;
        if( k >= u.length() ) return null;
        if( j >= u.length() ) return null;
        //System.out.println(j+","+k);
        if( u.charAt(k) == '/' ) k += 1;
        u = "http://"+u.substring(k);
//System.out.println(u);
        int i = u.lastIndexOf("/");
//System.out.println(i+" , "+u.substring(0, i));
        if( i == u.length() - 1) u = u.substring(0, i);
        return u;
    }
    /**
     * 从文件中获取消息内容
     * @param fileName
     * @return
     * @throws IOException
     */
    public static final byte[] readFromFile(File file) throws IOException
    {
        FileInputStream fin = new FileInputStream(file);
        byte [] buf = new byte[fin.available()];
        fin.read(buf);
        fin.close();
        return buf;
    }

    //判断是否合法的地址
    public static boolean isIPAddress(String strNum)
    {
        boolean b = true;
        PatternCompiler compiler = new Perl5Compiler();
        try
        {
            Pattern pattern = compiler.compile(
                "(\\d{1,3})(\\.)(\\d{1,3})(\\.)(\\d{1,3})(\\.)(\\d{1,3})");
            PatternMatcher matcher = new Perl5Matcher();
            b = matcher.matches(strNum, pattern);
            strNum = strNum.replace('.', ':');
            String[] fromStrs = strNum.split(":");

            //逐个检查每位是否小于255。
            for (int i = 0; i < fromStrs.length; i++)
            {
                if (Integer.valueOf(fromStrs[i]).intValue() > 255)
                {
                    b = false;
                }
            }
        }
        catch (Exception e)
        {
        }
        return b;
    }

    /**
     * 返回输入的路径文件是否存在
     * @param path
     * @return
     */
    public static final boolean isValidFile(String path)
    {
        File file = new File(path);
        if(file.exists())
        {
            return true;
        }
        return false;
    }

    /**
     *
     * @param folder
     * @return
     */
    public static final boolean createFolder(String folder)
    {
        File fd = new File(folder);
        if( fd.exists() && fd.isDirectory())
        {
            return true;
        }

        return fd.mkdir();
    }

    public static final boolean deleteAll(File dir)
    {
        File files[] = dir.listFiles();
        for( int i = 0; i < files.length; i++ )
        {
            if( !files[i].delete() ) return false;
        }
        return dir.delete();
    }

    private final static String[] hexDigits = {
          "0", "1", "2", "3", "4", "5", "6", "7",
          "8", "9", "a", "b", "c", "d", "e", "f"};

    /**
    * 转换字节数组为16进制字串
    * @param b 字节数组
    * @return 16进制字串
    */
    public static String byteArrayToString(byte[] b)
    {
        StringBuffer resultSb = new StringBuffer();
        for (int i = 0; i < b.length; i++)
        {
            resultSb.append(byteToHexString(b[i]));//若使用本函数转换则可得到加密结果的16进制表示,即数字字母混合的形式
            //resultSb.append(byteToNumString(b[i]));//使用本函数则返回加密结果的10进制数字字串,即全数字形式
        }
        return resultSb.toString();
    }

    private static String byteToNumString(byte b)
    {
        int _b = b;
        if (_b < 0) {
          _b = 256 + _b;
        }

        return String.valueOf(_b);
    }

    private static String byteToHexString(byte b) {
        int n = b;
        if (n < 0) {
          n = 256 + n;
        }
        int d1 = n / 16;
        int d2 = n % 16;
        return hexDigits[d1] + hexDigits[d2];
    }

    public static String encodeMD5(String origin)
    {
        String resultString = null;

        try
        {
            resultString = new String(origin);
            MessageDigest md = MessageDigest.getInstance("MD5");
            resultString = byteArrayToString(md.digest(resultString.getBytes()));
        }
        catch (Exception ex)
        {

        }
        return resultString;
    }

    public static void main( String[] args )
    {
        /*try{
            System.out.println( new String( "钀ㄨ开鍏".getBytes(), "UTF-8" ) );
        }catch( Exception e){
            e.printStackTrace();
        }

        String subject = "AB刘学好";
        String s;
        try{
            byte buf[] = subject.getBytes("UTF-8");
            Tools.printb(buf);
            s = new String( buf );
        }
        catch(Exception e){
            s = subject;
        }
        System.out.println(s);*/
        String s = "/portal/wap/menu.do;jid=GnRXFs1b5l!-2036470113?menuid=200104&ts=4021";
        System.out.println(checkHttpUri(s, "http://wap.monternet.com/"));

        System.out.println(encodeMD5("/portal/wap/menu.do;jid=GnRXFs1b5l!-2036470113?menuid=200104&ts=4021"));
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -