//请看下面代码(代码运行是没有错误的),问题就出现在,当content字段(在数据库中是 text类型)的值过于大的时候(也就是在数据库呈现long text),我用输出流读取时,只能读出一部分,
还有一部分就读不出来了。我现在不知道是我流控制的问题,还是其他问题,请大家指教。package a_test;import java.io.BufferedReader;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class jdbc_test {
private static String driver = "net.sourceforge.jtds.jdbc.Driver";
private static String url = "jdbc:jtds:sqlserver://192.168.17.3/gd;SelectMethod=cursor";
private static String userName = "cb";
private static String passwd = "cb"; public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, userName, passwd);
stmt = conn.createStatement(); String sql = "select content from T_jyglm";
rs = stmt.executeQuery(sql);
while (rs.next()) { Clob clob = rs.getClob("content");
Reader reader = clob.getCharacterStream(); BufferedReader r = new BufferedReader(reader);
StringBuilder b = new StringBuilder(); String line;
while ((line = r.readLine()) != null) {
b.append(line);
b.append("\r\n"); } System.out.println(b.toString()); }
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} } }
}
还有一部分就读不出来了。我现在不知道是我流控制的问题,还是其他问题,请大家指教。package a_test;import java.io.BufferedReader;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class jdbc_test {
private static String driver = "net.sourceforge.jtds.jdbc.Driver";
private static String url = "jdbc:jtds:sqlserver://192.168.17.3/gd;SelectMethod=cursor";
private static String userName = "cb";
private static String passwd = "cb"; public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, userName, passwd);
stmt = conn.createStatement(); String sql = "select content from T_jyglm";
rs = stmt.executeQuery(sql);
while (rs.next()) { Clob clob = rs.getClob("content");
Reader reader = clob.getCharacterStream(); BufferedReader r = new BufferedReader(reader);
StringBuilder b = new StringBuilder(); String line;
while ((line = r.readLine()) != null) {
b.append(line);
b.append("\r\n"); } System.out.println(b.toString()); }
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} } }
}
public BufferedReader(Reader in)创建一个使用默认大小输入缓冲区的缓冲字符输入流。 参数:
in - 一个 Reader
有没有可能是输入缓冲区不够大?