1、获取所在行
StackTraceElement[] stacks = Thread.currentThread().getStackTrace(); String str = "类名:"+stacks[2].getClassName() + "\n函数名:" + stacks[2].getMethodName() + "\n文件名:" + stacks[2].getFileName() + "\n行号:" + stacks[2].getLineNumber() + ""; MyLogger.d(TAG, str); MyLogger.d(TAG, Thread.currentThread().getStackTrace()[2].getLineNumber()+"行");
2、获取数据库表
public static String convertDatabaseCharsetType(String in, String type) { String dbUser; if (in != null) { if (type.equals("oracle")) { dbUser = in.toUpperCase(); } else if (type.equals("postgresql")) { dbUser = "public"; } else if (type.equals("mysql")) { dbUser = null; } else if (type.equals("mssqlserver")) { dbUser = null; } else if (type.equals("db2")) { dbUser = in.toUpperCase(); } else { dbUser = in; } } else { dbUser = "public"; } return dbUser; } private static void getTables(Connection conn) throws SQLException { DatabaseMetaData dbMetData = conn.getMetaData(); ResultSet rs = dbMetData.getTables(null, convertDatabaseCharsetType( "root","mysql"), null, new String[]{ "TABLE", "VIEW" }); while (rs.next()) { if (rs.getString(4) != null && (rs.getString(4).equalsIgnoreCase("TABLE") || rs .getString(4).equalsIgnoreCase("VIEW"))) { System.out.println(rs.getString(3).toLowerCase()); } } } private static void getTables2(Connection conn) throws SQLException { DatabaseMetaData dbMetData = conn.getMetaData(); ResultSet rs = dbMetData.getTables(null, "root", null, new String[]{ "TABLE", "VIEW" }); while (rs.next()) { System.out.println(rs.getString(3).toLowerCase()); } }
3、Java重启:
public static void restartApplication() throws URISyntaxException, IOException { final String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java"; final File currentJar = new File(Start.class.getProtectionDomain().getCodeSource().getLocation().toURI()); if(!currentJar.getName().endsWith(".jar")) return; final ArrayList<String> command = new ArrayList<String>(); command.add(javaBin); command.add("-jar"); command.add(currentJar.getPath()); final ProcessBuilder builder = new ProcessBuilder(command); builder.start(); System.exit(0); }
4、java管道通讯
public InputStream getInputStream(final FileHeader hd) throws RarException, IOException { final PipedInputStream in = new PipedInputStream(32 * 1024); final PipedOutputStream out = new PipedOutputStream(in); // creates a new thread that will write data to the pipe. Data will be // available in another InputStream, connected to the OutputStream. new Thread(new Runnable() { public void run() { try { extractFile(hd, out); } catch (RarException e) { } finally { try { out.close(); } catch (IOException e) { } } } }).start(); return in; }