gzip压缩器不会使用while循环

时间:2015-11-27 04:32:39

标签: java jdbc gzip

我尝试使用Java JDBC从数据库进行查询,并将一列中的数据压缩到特定目录中的gzip文件。我已经测试了我的JDBC查询并且它工作正常,但是Gzip代码没有使用while循环,它运行循环第一行并且卡在那里。为什么会卡住?请帮帮我! 这些文件夹已存在:D:\ Directory \ My \ year \ id1 \ id2

//Some query JDBC code here, it's work well. I query all rows Data, year, id1,id2,id3
 while (myRs1.next()){

        String str = Data;
    File myGzipFile = new File("D:\\Directory\\My\\"+year+"\\"+id1+"\\"+id2+"\\"+id3+".gzip");

    GZIPOutputStream gos = null;
    InputStream is = new ByteArrayInputStream(str.getBytes());
    gos = new GZIPOutputStream(new FileOutputStream(myGzipFile));

    byte[] buffer = new byte[1024];
    int len;
    while ((len = is.read(buffer)) != -1) {
        gos.write(buffer, 0, len);
        System.out.print("done for:"+id3);
    }


    try { gos.close(); } catch (IOException e) { }
}

1 个答案:

答案 0 :(得分:0)

尝试像这样格式化源代码以捕获异常。

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

      InputStream is = null;
      int i;
      char c;

      try{
         is = new FileInputStream("C://test.txt");

         System.out.println("Characters printed:");

         // reads till the end of the stream
         while((i=is.read())!=-1)
         {
            // converts integer to character
            c=(char)i;

            // prints character
            System.out.print(c);
         }
      }catch(Exception e){

         // if any I/O error occurs
         e.printStackTrace();
      }finally{

         // releases system resources associated with this stream
         if(is!=null)
            is.close();
      }
   }
}