public void mysql () throws Tool4jException { BufferedReader br = null;
BufferedWriter bw = null;
try {
Process process = Runtime.getRuntime().exec("mysql -u root -proot test");
bw = new BufferedWriter(new OutputStreamWriter(process.getOutputStream(), "utf8"));
String inStr = null;
StringBuffer sb = new StringBuffer("");
br = new BufferedReader(new InputStreamReader(new FileInputStream("C:/text.sql"), "utf8"));
while ((inStr = br.readLine()) != null) {
sb.append(inStr).append("");
}
bw.write(sb.toString());
bw.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bw != null) bw.close();
} catch (Exception e2) {}
try {
if (br != null) br.close();
} catch (Exception e2) {}
}
}这个方法为什么无法导入数据?又没有错误谁有能正确导入数据库的方法?

解决方案 »

  1.   

    public void mysql () throws Tool4jException { BufferedReader br = null; 
    BufferedWriter bw = null; 
    try { 
    Process process = Runtime.getRuntime().exec("mysql -u root -proot test"); 
    bw = new BufferedWriter(new OutputStreamWriter(process.getOutputStream(), "utf8")); 
    String inStr = null; 
    StringBuffer sb = new StringBuffer(""); 
    br = new BufferedReader(new InputStreamReader(new FileInputStream("C:/text.sql"), "utf8")); 
    while ((inStr = br.readLine()) != null) { 
    sb.append(inStr).append(""); 

    process.waitFor();
    bw.write(sb.toString()); 
    bw.flush(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } finally { 
    try { 
    if (bw != null) bw.close(); 
    } catch (Exception e2) {} 
    try { 
    if (br != null) br.close(); 
    } catch (Exception e2) {} 

      

  2.   

    中间加入process.waitFor();
      

  3.   

    直接执行sql语句不结了啊
    还什么process啊
      

  4.   


    是啊, 为什么不直接执行SQL语句???
      

  5.   

    是不是写入的过快用Thread.sleep(100)这个试一下,把process.waitfor()替换一下