如何从字节数组中下载epub文件

时间:2014-04-09 10:26:42

标签: android download byte

我尝试做类似的事情:

public void onClick(View v) {
            WebServiceC webService = WebServiceC();

            epubDownloaded = webService.downloadEpub(publi.getId());
             File fileEpub=new File(Environment.getExternalStorageDirectory(), "test.epub");
             if (fileEpub.exists()) {
                fileEpub.delete();
              }
             try {
                    FileOutputStream fos=new FileOutputStream(arquivoEpub.getPath());

                    fos.write(epubDownloaded);
                    fos.close();
                  }catch (IOException e) {
                        e.printStackTrace();
                    }
        }

    });

但它没有用。

  

FATAL EXCEPTION:主java.lang.NullPointerException at   java.io.OutputStream.write(OutputStream.java:82)

------------------------------------ EDIT ---------- -------------------------------- 谢谢..我用这种方式解决了我的问题 - >

 int count;
                    WebServiceC webService = new WebServiceC();

                    epubDownloaded = webService.downloadEpub(publi.getId());

                    InputStream input = new ByteArrayInputStream(epubDownloaded);
                    OutputStream output = null;
                    try {
                        output = new FileOutputStream(Environment.getExternalStorageDirectory()+"/test.epub");
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }
                    byte data[] = new byte[1024];

                    try {
                        while ((count = input.read(data)) != -1) {

                            output.write(data, 0, count);
                        }
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

1 个答案:

答案 0 :(得分:0)

代码中我唯一可以看到可以抛出的NullPointerException位于FileOutputStream fos=new FileOutputStream(arquivoEpub.getPath());行。

FileOutputStream的构造函数可以抛出NullPointerException的唯一时间是它的构造函数FileOutputStream(FileDescriptor fdObj)传递一个空值。我不知道函数arquivoEpub.getPath()返回什么,所以我不能做任何其他的猜测。

此外,如果可能,请准确发布与第82行相对应的行,因为这是引发异常的行。