import com.sun.imageio.plugins.common.ImageUtil;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
public class blob2png {
public static void readBin2Image(InputStream in, String targetPath) {
File file = new File(targetPath);
String path = targetPath.substring(0, targetPath.lastIndexOf("/"));
if (!file.exists()) {
new File(path).mkdir();
}
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
int len = 0;
byte[] buf = new byte[1024];
while ((len = in.read(buf)) != -1) {
fos.write(buf, 0, len);
}
fos.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != fos) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void readDB2Image() {
String targetPath = "C:/Users/Administrator/Desktop/1.png";
Connection conn = null;
try {
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Administrator\\Desktop\\tiles_0_0 .sqlite");
} catch (Exception e) {
e.printStackTrace();
}
PreparedStatement ps = null;
ResultSet rs = null;
int num =0;
try {
String sql = "select * from tiles";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
targetPath = "C:/Users/Administrator/Desktop/"+rs.getInt("tile_column")+"_"+rs.getInt("tile_row")+".png";
num++;
InputStream in = rs.getBinaryStream("tile_data");
readBin2Image(in, targetPath);
System.out.println(rs.getInt("zoom_level"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
//测试
public static void main(String[] args) {
readDB2Image();
}
}