把图片a存储到sql server里面,在存入之前调用InputStream的available()是234521的数
可以用ResultSet从数据库里面读出图片a的时候再调用InputStream的available()怎么返回的就是0了
这是怎么回事?
可以用ResultSet从数据库里面读出图片a的时候再调用InputStream的available()怎么返回的就是0了
这是怎么回事?
解决方案 »
- 如何转移svn的工程到另一个Svn中
- 简易QQ程序,怎么加多线程?
- java socket 监听程序总是隔几个小时就自动死掉。。在线等。。。
- 怎么把从数据库中select出来的数据放到JTable里?
- 光标如何定位
- 谁了解jgraph??
- 访问SQL SERVER数据库
- Thread.currentThread().sleep(5000)跟Thread.sleep(5000)有什么不同呢?
- 这段代码怎么进行优化?
- 怎样在javaBean中获得文件上传的文件名称?在线等待!
- 请问java中的String 类是否有像VC中的CString一样有Format的函数!大家平时是如何面对长的SQL语句呢?
- applet问题: 我用IE加载applet时, 老是出现信息栏的警告提示, 请问有什么办法除去信息栏的警告提示呢?
String path="C:/test-3.gif";
File file=new File(path);
InputStream is = new FileInputStream(file);
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.202.107:1433;DatabaseName=jk","jkuser","jkuser");
PreparedStatement ps=con.prepareStatement("INSERT INTO big_object VALUES (?, ?)");
ps.setString(1, file.getName());
System.out.println(is.available());//有值234521
ps.setBinaryStream(2, is, is.available());
ps.executeUpdate();
ps.close();
is.close();
con.close();
}
public void select() throws Exception{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.202.107:1433;DatabaseName=jk","jkuser","jkuser");
ResultSet rs=con.createStatement().executeQuery("select text from big_object where name='test-3.gif'");
rs.next();
InputStream is=rs.getBinaryStream(1);
System.out.println(is.available());//打出来的是0 为什么会这样?
byte[] buffer=new byte[1024];
is.read(buffer);
FileOutputStream fout=new FileOutputStream("c:/a_copy.gif");
fout.write(buffer);
fout.close();
is.close();
con.close();
}
import java.sql.*;public class TestWriteImage
{
static void WriteImage() throws Exception
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = ("jdbc:odbc:Demo");
Connection conn = DriverManager.getConnection(url);
FileInputStream fis = new FileInputStream("C:\\1.jpg");
PreparedStatement ps = conn.prepareStatement("insert into MyTable values(?,?,?)");
ps.setInt(1,1);
ps.setString(2,"1,jpg");
ps.setBinaryStream(3,fis,fis.available());
ps.executeUpdate();
fis.close();
ps.close();
conn.close();
}
static void ReadImage() throws Exception
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = ("jdbc:odbc:Demo");
Connection conn = DriverManager.getConnection(url);
Statement s = conn.createStatement();
String sql = "select img from MyTable where id = 1";
//String sql = "select lastname from employees where employeeid = 1";
ResultSet rs = s.executeQuery(sql);
rs.next();
InputStream is = rs.getBinaryStream(1);
BufferedInputStream bis = new BufferedInputStream(is);
File f = new File("C:\\2.jpg");
if(f.exists()==false)
{
f.createNewFile();
}
FileOutputStream fos = new FileOutputStream(f);
int temp;
temp = bis.read();
while(temp!=-1)
{
fos.write(temp);
temp = bis.read();
}
fos.flush();
fos.close();
rs.close();
s.close();
conn.close();
}
public static void main(String[] args) throws Exception
{
WriteImage();
ReadImage();
}
}