java实现mysql存储压缩文件

java实现mysql存储压缩文件,第1张

数据库设计时,字段定义为LONGBLOB类型。

保存时用

File file = new File("文件路径")

InputStream is = new ByteArrayInputStream(new FileInputStream(file ))

statement.setBlob(1, is, file.length())

你没要读取的,我没写。用的MySQL数据库

DROP TABLE IF EXISTS `t_song_file`

CREATE TABLE `t_song_file` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`file_name` varchar(50) DEFAULT NULL,

`file` blob,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

package com.song.test

import java.io.File

import java.io.FileInputStream

import java.io.InputStream

import java.sql.Connection

import java.sql.PreparedStatement

import com.song.dao.DBUtil

public class InputStreamInDB {

public static void main(String[] args) throws Exception {

Connection conn=DBUtil.getConnection()

String sql="insert into t_song_file(file_name,file) values(?,?)"

PreparedStatement ps=conn.prepareStatement(sql)

ps.setString(1, "hello.zip")

ps.setBlob(2, getFileInputStream("C:/Users/songjunliang/Desktop/hello.zip"))

int tag=ps.executeUpdate()

if(1==tag)

{

System.out.println("success")

}

ps.close()

conn.close()

}

public static InputStream getFileInputStream(String filePath) throws Exception

{

File file=new File(filePath)

InputStream is=new FileInputStream(file)

return is

}

}

不知道你要什么样的文本,文本中的内容是否是有格式的:

这里提供下思路,供参考:

1.文本文件,基本上式字符格式的了,可以用Reader  io流

2.如果是格式化的文本,可以按数据的长度读取,  readInt   readByte...

3.保存到数据库 当然用JDBC了,如果你读取出来封装成POJO了,也可以选择 OM框架

import java.io.BufferedReader

import java.io.FileInputStream

import java.io.IOException

import java.io.InputStreamReader

/**

 * 文件读取和写入数据库

 * @author  樊云升

 *

 */

public class FilesReader {

public FilesReader(){

}

/**

 * 读取文件内容

 * @param FILE

 * @return

 */

public String re_content(String FILE){

String content=""

 try{   

             BufferedReader bufRead=new BufferedReader(new InputStreamReader(new FileInputStream(FILE)))   

             String  str   

             while((str=bufRead.readLine())!=null){   

               content+=str+"\r\n"   

             }

 }catch(IOException ioe){

   ioe.printStackTrace()

 }

return  content

}

/**

 * 将特定字符写入数据库中(原来我写的是重写文件,你这里这里将content写入数据库就OK)

 * @param path

 * @return

 */

public boolean writeFile(String content){

try{

//数据库写入代码

                     }catch(Exception e){

  out.close()

  return false

 }

return true

}

public static void main(String[] args) {

String content=new FilesReader().re_content("D:\\AJAX.htm")

                new FilesReader().writeFile(content)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10013600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存