这个程序对不对呢?改了之后,运行没有结果
Command line: "C:\java\jre\bin\java.exe" -classpath C:\java JDBC readme.html ,a.html
The current directory is: C:\java
java.lang.NoSuchMethodError: main
Exception in thread "main"
Interactive Session Ended
Command line: "C:\java\jre\bin\java.exe" -classpath C:\java JDBC readme.html ,a.html
The current directory is: C:\java
java.lang.NoSuchMethodError: main
Exception in thread "main"
Interactive Session Ended
这样的话,游标才能有效。
想把所有的数据都写入文件的话,用while(rs.next()){}来做循环。
又出了这样一个问题
{
public static void main (String[] args)
{
try
{
//create a jdbcodbcbridge
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String source ="jdbc:odbc:gb_big5";
Connection con = DriverManager.getConnection (source);
Statement stmt = con.createStatement();
String sql = "SELECT gb,big5 From reflection";
ResultSet rs =stmt.executeQuery(sql);
//构造一个stringbuffer
StringBuffer sb = new StringBuffer();
//读取一个文件
FileReader fr=new FileReader(args[0]);
BufferedReader br=new BufferedReader(fr);
while (rs.next())
{
String s1,s2;
while((s1=br.readLine())!=null)
{
if (s1.equals(rs.getString("gb")))
s2 = rs.getString("big5");
else s2 = s1;
sb.append(s2);
}
FileWriter fw = new FileWriter(args[1]);
BufferedWriter bw= new BufferedWriter(fw);
bw.write(sb.toString());
bw.close();
fr.close();
}
}
catch (IOException e)
{
System.out.println("error1:" + e);
}
catch (ClassNotFoundException e)
{
System.out.println("error2: " + e);
} catch (SQLException e)
{
System.out.println("error3:" +e);
}
}
}
但是还是有
error1:java.io.IOException: Stream closed
的问题,怎么回事呢?
不應放在while循環裡,應在循環結束後,調用br.close();
public static void main (String[] args)
{
try
{
//create a jdbcodbcbridge
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String source ="jdbc:odbc:gb_big5";
Connection con = DriverManager.getConnection (source);
Statement stmt = con.createStatement();
String sql = "SELECT gb,big5 From reflection";
ResultSet rs =stmt.executeQuery(sql);
//构造一个stringbuffer
StringBuffer sb = new StringBuffer();
//读取一个文件
BufferedReader br=new BufferedReader(new FileReader(args[0]));
while (rs.next())
{
String s1,s2;
while((s1=br.readLine())!=null)
{
if (s1.equals(rs.getString("gb")))
s2 = rs.getString("big5");
else s2 = s1;
sb.append(s2);
}
BufferedWriter bw= new BufferedWriter(new FileWriter(args[1]));
bw.write(sb.toString());
bw.close();
}
bw.close();
rs.close();
}
catch (IOException e)
{
System.out.println("error1:" + e);
}
catch (ClassNotFoundException e)
{
System.out.println("error2: " + e);
} catch (SQLException e)
{
System.out.println("error3:" +e);
}
}
public static void main (String[] args)
{
try
{
//create a jdbcodbcbridge
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String source ="jdbc:odbc:gb_big5";
Connection con = DriverManager.getConnection (source);
Statement stmt = con.createStatement();
String sql = "SELECT gb,big5 From reflection";
ResultSet rs =stmt.executeQuery(sql);
//构造一个stringbuffer
StringBuffer sb = new StringBuffer();
//读取一个文件
BufferedReader br=new BufferedReader(new FileReader(args[0]));
while (rs.next())
{
String s1,s2;
while((s1=br.readLine())!=null)
{
if (s1.equals(rs.getString("gb")))
s2 = rs.getString("big5");
else s2 = s1;
sb.append(s2);
}
BufferedWriter bw= new BufferedWriter(new FileWriter(args[1]));
bw.write(sb.toString());
bw.close();
}
br.close();
rs.close();
}
catch (IOException e)
{
System.out.println("error1:" + e);
}
catch (ClassNotFoundException e)
{
System.out.println("error2: " + e);
} catch (SQLException e)
{
System.out.println("error3:" +e);
}
}