2014-01-23 23 views
3

我試圖將大的3gp文件(大於25mb)轉換爲字節數組,但它會給出outofmemory異常。我能夠將小於25 MB的3gp文件轉換爲bytearray。將大的3gp文件轉換爲字節數組

文件file1 =新文件(Environment.getExternalStorageDirectory()+「1.3gp」);

  FileInputStream fis = null; 

      try { 
       fis = new FileInputStream(file1); 

      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
       try { 
       while (fis.available() > 0) { 
         bos.write(fis.read()); 
         } 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 



      byte[] bytes = bos.toByteArray(); 


      File someFile = new File (Environment.getExternalStorageDirectory()+ "/output.txt"); 


      FileOutputStream fos = null; 

      try { 
       fos = new FileOutputStream(someFile); 

      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      try { 
       fos.write(bytes); 

      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      try { 
       fos.flush(); 

      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      try { 
       fos.close(); 

      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     //// 
  1. 如何大3GP文件轉換成字節組。
  2. 給出一個適當的例子或方法。
+3

向我們展示你的代碼的相關部分,使我們可以提供幫助。 –

+0

我使用的是http://commons.apache.org/proper/commons-io/,特別是IOUtils.toByteArray – 2Dee

回答

0

將用於運行程序的虛擬機上的-Xmx選項設置爲更大的值,以便爲其提供更多內存。

如果直接運行程序,或者如果在IDE中運行程序時將其作爲IDE中項目的設置,則可以將其作爲命令行選項執行。

相關問題