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

📄 util.java

📁 harvest是一个下载html网页得机器人
💻 JAVA
字号:
/************************************************************************************************* * Class of utility methods *                                                      Copyright (C) 2000-2003 Mikio Hirabayashi * This file is part of QDBM, Quick Database Manager. * QDBM is free software; you can redistribute it and/or modify it under the terms of the GNU * Lesser General Public License as published by the Free Software Foundation; either version * 2.1 of the License or any later version.  QDBM is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more * details. * You should have received a copy of the GNU Lesser General Public License along with QDBM; if * not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307 USA. *************************************************************************************************/package qdbm;import java.io.IOException;import java.io.Serializable;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/** * Class of utility methods. * This class depends on the native library `jqdbm'. */public class Util {  //----------------------------------------------------------------  // public static constants  //----------------------------------------------------------------  /** size of a long integer */  private static final int LONGSIZE = 8;  //----------------------------------------------------------------  // static initializer  //----------------------------------------------------------------  static {    try {      System.loadLibrary("jqdbm");    } catch(UnsatisfiedLinkError e){      e.printStackTrace();    }  }  //----------------------------------------------------------------  // public static methods  //----------------------------------------------------------------  /**   * Serialize an object.   * @param obj a serializable object.   * @return a byte array of the serialized object or null if an error occurs.   */  public static byte[] serialize(Object obj){    ByteArrayOutputStream baos = new ByteArrayOutputStream();    ObjectOutputStream oos = null;    try {      oos = new ObjectOutputStream(baos);      oos.writeObject(obj);      oos.flush();      baos.flush();      return baos.toByteArray();    } catch(IOException e){      return null;    } finally {      try {        if(oos != null) oos.close();      } catch(IOException e){}    }  }  /**   * Redintegrate a serialized object.   * @param serial a byte array of the serialized object.   * @return an original object or null if an error occurs.   */  public static Object deserialize(byte[] serial){    ByteArrayInputStream bais = new ByteArrayInputStream(serial);    ObjectInputStream ois = null;    try {      ois = new ObjectInputStream(bais);      return ois.readObject();    } catch(IOException e){      return null;    } catch(ClassNotFoundException e){      return null;    } finally {      try {        if(ois != null) ois.close();      } catch(IOException e){}    }  }  /**   * Serialize a long integer.   * @param num a long integer.   * @return a byte array of the serialized long integer.   */  public static byte[] serializeLong(long num){    byte[] serial = new byte[LONGSIZE];    for(int i = 0; i < LONGSIZE; i++){      serial[LONGSIZE-i-1] = (byte)(num & 0xff);      num >>= 8;    }    return serial;  }  /**   * Redintegrate a serialized long integer.   * @param serial a byte array of a serialized long integer.   * @return the long value.   * @throws IllegalArgumentException thrown if the size of the array is invalid.   */  public static long deserializeLong(byte[] serial) throws IllegalArgumentException {    if(serial.length != LONGSIZE) throw new IllegalArgumentException();    long num = 0;    for(int i = 0; i < LONGSIZE; i++){      num *= 256;      num += serial[i] + ((serial[i] < 0) ? 256 : 0);    }    return num;  }  /**   * Get a formatted decimal string made from a number.   * @param num a number.   * @param cols the number of columns.  The result string may be longer than it.   * @param padding a padding character to fulfil columns with.   */  public static String numstr(int num, int cols, char padding){    StringBuffer sb = new StringBuffer(cols);    boolean minus = false;    if(num < 0){      num *= -1;      cols--;      minus = true;    }    int i = 0;    while(num > 0){      sb.insert(0, num % 10);      num /= 10;      i++;    }    while(i < cols){      sb.insert(0, padding);      i++;    }    if(minus) sb.insert(0, '-');    return sb.toString();  }  //----------------------------------------------------------------  // public static native methods  //----------------------------------------------------------------  /**   * Execute a shell command using the native function `system' defined in POSIX and ANSI C.   * @param path a command line.   * @return the return value of the function.  It depends on the native system.   */  public static synchronized native int system(String cmd);  /**   * Change current working directory using the native function `chdir' defined in POSIX.   * @param path the path of a directory.   * @return 0 on success, or -1 on failure.   */  public static synchronized native int chdir(String path);  /**   * Get current working directory using the native function `getcwd' defined in POSIX.   * @return the path of the current working directory or null on failure.   */  public static synchronized native String getcwd();  /**   * Get process identification using the native function `getpid' defined in POSIX.   * @return the process ID of the current process.   */  public static synchronized native int getpid();  /**   * Get an environment variable using the native function `getenv' defined in POSIX and ANSI C.   * @param name the name of an environment variable.   * @return the value of the variable, or null if it does not exist.   */  public static synchronized native String getenv(String name);  //----------------------------------------------------------------  // private methods  //----------------------------------------------------------------  /* Default constructor.   * This should not be used. */  private Util() throws Exception {    throw new Exception();  }}/* END OF FILE */

⌨️ 快捷键说明

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