我尝试做类似的事情:
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();
}
答案 0 :(得分:0)
代码中我唯一可以看到可以抛出的NullPointerException
位于FileOutputStream fos=new FileOutputStream(arquivoEpub.getPath());
行。
FileOutputStream
的构造函数可以抛出NullPointerException
的唯一时间是它的构造函数FileOutputStream(FileDescriptor fdObj)
传递一个空值。我不知道函数arquivoEpub.getPath()
返回什么,所以我不能做任何其他的猜测。
此外,如果可能,请准确发布与第82行相对应的行,因为这是引发异常的行。