将大3gp文件转换为字节数组

时间:2014-01-23 10:39:54

标签: java android

我正在尝试将大型3gp文件(>大于25mb)转换为字节数组,但它提供了outofmemory异常。我能够将小于25 mb的3gp文件转换为bytearray。

文件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文件转换为bytearray。
  2. 给出一个恰当的例子或方法。

1 个答案:

答案 0 :(得分:0)

将用于运行程序的虚拟机上的-Xmx选项设置为更大的值,以便为其提供更多内存。

如果直接运行程序,可以将其作为命令行选项,或者如果从IDE运行,则可以作为IDE中项目的设置。