java實現文件轉換成二進制存儲與取出


一、功能描述:

將文件轉成二進制數據放入數據庫中,需要的時候,便可以取出安裝與使用。

 

二、數據庫:

建立一個數據庫字段存放轉成二進制的圖片,這個字段有一個要求就是要設置成blob類型的

[sql]  view plain copy
 
  1. CREATE TABLE `save_image` (  
  2.   `id` int(50) NOT NULL AUTO_INCREMENT,  
  3.   <span style="color:#FF0000;">`images` blob</span>,  
  4.   PRIMARY KEY (`id`)  
  5. )   

三、轉換文件成為二進制數據並保存的Java代碼:

[java]  view plain copy
 
  1. public  void save() throws SQLException  
  2. {  
  3.     connection=connectionManager.getconn();//連接數據庫的操作,這里自己連接自己的數據庫  
  4.       
  5.     try {  
  6.         File file=new File("D:\\1.jpg");//要轉換的文件  
  7.         FileInputStream inputStream=new FileInputStream(file);  
  8.         String sql="insert into save_image(images) values(?)";//存入數據庫的SQL語句在執行的時候一定要用prepareStatement  
  9.         statement=connection.prepareStatement(sql);  
  10.         statement.setBinaryStream(1, inputStream,(int)file.length());  
  11.         statement.executeUpdate();  
  12.           
  13.     } catch (FileNotFoundException e) {  
  14.         // TODO Auto-generated catch block  
  15.         e.printStackTrace();  
  16.     } catch (SQLException e) {  
  17.         // TODO Auto-generated catch block  
  18.         e.printStackTrace();  
  19.     }  
  20.       
  21. }  

四、取出數據並還原文件到本地的java代碼:

[java]  view plain copy
 
  1. //讀取數據庫二進制文件  
  2. public void readerJpg() throws SQLException  
  3. {  
  4.     connection=connectionManager.getconn();//自己連接自己的數據庫!!!!!!!!  
  5.     String sqlString="select images from save_image where id=4";//從數據庫中讀出要還原文件的二進制碼,這里我讀的是自己的數據庫id為4的文件  
  6.     File file=new File("E:\\1.jpg");//本地生成的文件  
  7.     if(!file.exists())  
  8.     {  
  9.         try {  
  10.             file.createNewFile();  
  11.         } catch (Exception e) {  
  12.             e.printStackTrace();  
  13.         }  
  14.           
  15.     }  
  16.     try {  
  17.         byte[] Buffer = new byte[4096*5];  
  18.         statement=connection.prepareStatement(sqlString);  
  19.         resultSet = statement.executeQuery();  
  20.         if(resultSet.next())  
  21.         {  
  22.             FileOutputStream outputStream = new FileOutputStream(file);  
  23.             InputStream iStream = resultSet.getBinaryStream("images");//去字段用getBinaryStream()  
  24.             int size=0;  
  25.             while((size=iStream.read(Buffer))!=-1)  
  26.             {  
  27.                 System.out.println(size);  
  28.                 outputStream.write(Buffer,0,size);  
  29.             }  
  30.         }  
  31.     } catch (Exception e) {  
  32.         e.printStackTrace();  
  33.     }  
  34.       
  35. }  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM