java 下载图片(java如何从数据库中下载以二进制存储的图片)

本文目录
- java如何从数据库中下载以二进制存储的图片
- java从服务器下载图片怎么讲图片保存到本地的sdcard上
- 下载图片 可以弹出选择路径 然后下载到指定路径用Java怎么做
- Java FTPClient 如何下载jpg 下载下来的图片大小0字节,是什么问题如何解决
- java下载图片超时原因是什么
- Java编写一下图片下载程序
- java 图片下载问题,高手帮忙看看 ( in.read(buf)在一个下载图片的线程有的时候读取到这里就不动了)
- 如何提取网页里的文本
- java多线程下载图片还是和单线程一样
java如何从数据库中下载以二进制存储的图片
/**
* Created by IntelliJ IDEA.
* User: ljt
* Date: 2003-3-31
* Time: 18:51:38
* To change this template use Options | File Templates.
*/
import oracle.jdbc.driver.OraclePreparedStatement;
import oracle.jdbc.driver.OracleResultSet;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.Clob;
public class TestOpenDoc {
public OracleResultSet ors = null; //**这里rs一定要用Oracle提供的
public OraclePreparedStatement opst = null; //**PreparedStatement用
public Connection conn = null;
public Statement stmt = null;
public TestOpenDoc() {
}
public boolean getConnect() {
//这是我的数据库所在
String serverName = "prosrv";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@" + serverName + ":1521:BOHDATA";
conn = DriverManager.getConnection(url, "appuser", "appuser");
}
catch (Exception e) {
System.out.println(e);
return false;
}
return true;
}
public static void main(String args) {
TestOpenDoc test = new TestOpenDoc();
if (!test.getConnect()) {
System.out.println("数据库连结错误");
return ;
}
try{
test.conn.setAutoCommit(false);
byte a = null; //**将测试文件test.doc读入此字节数组
java.io.FileInputStream fin = null;
java.io.FileOutputStream fout = null;
//Oracle提供的
try {
java.io.File f1 = new java.io.File("c:/test.doc");
java.io.File f2 = new java.io.File("d:/testout.doc"); //**从BLOB读出的信息写
//入该文 件,和源文件对比测试用
fin = new java.io.FileInputStream(f1);
fout = new java.io.FileOutputStream(f2);
int flength = (int) f1.length(); //**读入文件的字节长度
System.out.println("file length::" + flength);
a = new byte;
int i = 0;
int itotal = 0;
//* 将文件读入字节数组
for (; itotal 《 flength; itotal = i + itotal) {
i = fin.read(a, itotal, flength - itotal);
}
fin.close();
System.out.println("read itotal::" + itotal);
//**注意Oracle的 BLOB一定要用EMPTY_BLOB()初始化
String mysql =
"insert into filelist (FileName,FileSize,FileBody) values (?,?,EMPTY_BLOB())";
OraclePreparedStatement opst = (OraclePreparedStatement) test.conn.
prepareStatement(mysql);
opst.setString(1, "wordtemplate2");
opst.setInt(2, flength);
opst.executeUpdate();
opst.clearParameters();
// /**插入其它数据后,定位BLOB字段
mysql = "select filebody from filelist where filename=?";
opst = (OraclePreparedStatement) test.conn.prepareStatement(mysql);
opst.setString(1, "wordtemplate2");
OracleResultSet ors = (OracleResultSet) opst.executeQuery();
if (ors.next()) {
oracle.sql.BLOB blob = ors.getBLOB(1); //**得到BLOB字段
int j = blob.putBytes(1, a); //**将字节数组写入BLOB字段
System.out.println("j:" + j);
test.conn.commit();
ors.close();
Clob clob;
clob = ors.getClob("");
String str;
str = clob.toString();
str = clob.getSubString(0L,(int)clob.length());
System.out.println(str);
}
System.out.println("insert into ok");
byte b = null; //**保存从BLOB读出的字节
opst.clearParameters();
mysql = "select filebody from filelist where filename=?";
opst = (OraclePreparedStatement) test.conn.
prepareStatement(mysql);
opst.setString(1, "wordtemplate2");
ors = (OracleResultSet) opst.executeQuery();
if (ors.next()) {
oracle.sql.BLOB blob2 = ors.getBLOB(1);
System.out.println("blob2 length:" + blob2.length());
b = blob2.getBytes(1, flength); //**从BLOB取出字节流数据
System.out.println("b length::" + b.length);
test.conn.commit();
}
ors.close();
// 将从BLOB读出的字节写入文件
fout.write(b, 0, b.length);
fout.close();
System.out.println("write itotal::" + b.length);
}
catch (Exception e) {
System.out.println("errror :" + e.toString());
e.printStackTrace();
}
finally { //**关闭所有数据联接
test.conn.commit();
}
}
catch(Exception e){
System.out.println(e);
}
}
}
java从服务器下载图片怎么讲图片保存到本地的sdcard上
ublic HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path是指欲下载的文件的路径。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 取得文件的后缀名。
String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte;
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return response;
}
下载图片 可以弹出选择路径 然后下载到指定路径用Java怎么做
方便起见你就按照我的目录一步一步来吧
1.建立MANIFEST.MF (在D:\abc目录下)
以下内容为文件内容 (只复制2行等于号之间的)
==================
Manifest-Version: 1.0
Main-Class: RoundButton
Created-By: Abc
==================
2.打包
把你的RoundButton.class复制到D:\abc目录下
然后
开始--》运行--》敲cmd打开命令行,
输入cd d:\abc 回车
输入d: 回车
输入jar cvfm abc.jar MANIFEST.MF *.* 回车
然后就能看到abc目录下有个叫abc.jar的文件,双击可以运行,jar包名字随便改,不影响
以上操作前提条件是你机器里jdk环境变量配置正确,100%可用,我已经试过
Java FTPClient 如何下载jpg 下载下来的图片大小0字节,是什么问题如何解决
使用方法不对吧,你看看FTPClient这个类,提供了deleteFile方法,应该是用这个进行删除文件的
至于用命令的方式删除,你要看哈FTPCommand这个类里面的常量命令,有DELE和DELETE两个,我没用过命令的方式,不知道这两个的区别,需要你自己试了
java下载图片超时原因是什么
网络连接超时:如果下载图片的网络连接不稳定或延迟高,可能会导致下载超时。这可能是由于网络延迟、服务器响应慢或网络连接中断等原因引起的。
图片文件过大:如果要下载的图片文件很大,下载过程可能会消耗较长时间,从而导致超时。这通常发生在下载高分辨率或大尺寸的图片时。
服务器响应慢:如果服务器的响应时间较长,可能会导致下载超时。这可能是由于服务器负载高、服务器性能问题或网络拥塞等原因引起的。
防火墙或代理限制:如果在访问图片的过程中,存在防火墙或代理服务器,它们可能会对连接进行限制或阻止某些网络请求,从而导致下载超时。
增加超时时间:可以通过设置适当的超时时间来延长下载操作的等待时间,以便更好地适应网络连接不稳定的情况。
优化网络连接:确保网络连接稳定,并尽可能选择较快的网络连接。
压缩图片大小:如果图片文件过大,可以考虑对其进行压缩处理,以减少下载时间和带宽消耗。
使用多线程下载:通过使用多线程下载,可以同时从多个服务器或来源下载图片,以提高下载速度和稳定性。
检查代理设置和防火墙限制:确保代理设置正确,并检查防火墙是否限制了下载操作。
解决超时问题的方法包括:
请注意,具体解决方法取决于具体情况和使用的下载方法或库。
Java编写一下图片下载程序
楼上的写的没错,不过感觉太麻烦了,用hutool工具包来写个方法
***隐藏网址***
第一个参数为百度logo图片,第二个为我本地下载位置,下载结果如图
java 图片下载问题,高手帮忙看看 ( in.read(buf)在一个下载图片的线程有的时候读取到这里就不动了)
二进制的,应该使用
byte bb;
int r;
while( (r=in.read(bb))》0 ){
fou.write(bb, 0, r);
}
in.close();
fou.close();
如何提取网页里的文本
1、首先,我们打开浏览器,找到需要复制的文字。
2、右键点击网页内的空白处,如图所示,弹出菜单中选择“审查元素”。
3、此时,页面就会显示所有组成元素,我们只要选中我们需要复制的段落,右键点击,“copy element”(复制元素)就可以了。
4、打开记事本或者Word,点击粘贴,文字复制下来的效果如下图所示。
java多线程下载图片还是和单线程一样
Java多线程可以提高图片下载的效率,尤其是在需要下载大量图片或者文件时。通过多线程技术,可以把大量的下载任务分解成多个子任务,每个子任务独立运行在一个单独的线程中,从而可以并发地下载多张图片或者文件,从而大大提高了下载速度。
然而,多线程下载也存在一些问题,比如线程间的协调、资源共享、锁竞争等等,如果处理不当,可能会导致程序出现死锁、并发冲突等问题,甚至会降低程序的运行效率。因此,在编写多线程下载程序时,需要注意线程的安全性、同步机制、资源管理等方面的问题,以确保程序的稳定性和性能。同时,还需要考虑网络带宽、服务器限制等因素,避免过度占用网络资源,给其他用户造成影响。

更多文章:
html空格为什么变成小点点了(word空格变成了小点怎么回事)
2026年3月7日 17:30
数据结构与算法c语言答案(关于数据结构算法,谁能帮我用C语言写下谢谢)
2026年1月16日 13:45
vlookup怎么把第二个重复值显示(Excel里用vlookup函数查找有两个值怎么输出第二个)
2025年9月15日 02:15
vlookup对比两列找不同(EXCEL中怎么两列数据中不一样的找出来)
2026年5月21日 02:00
demand的汉语意思(chemical oxygen demand是什么意思)
2026年9月17日 10:15
c语言定义任意数据类型(C语言中怎么准确地给变量确定数据类型)
2025年8月28日 07:30
editorial assignment需要多久(英国论文Group Assignment如何写作求写作辅导)
2026年7月11日 22:45
allowance的中文意思(allowance subsidy有何区别)
2026年8月9日 02:00
closer歌词版mv下载(求火影忍者片头曲closer的歌词和中文翻译 thanks)
2025年9月18日 08:15
stata修改变量类型(怎样用stata命令定义一个二元变量)
2025年8月25日 16:15
使用yum安装mysql教程(如何从MySQL官方Yum仓库安装MySQL5.6)
2025年5月30日 09:15
blueblock是什么意思(it blue block是啥)
2025年12月29日 06:00









