一尘不染

将文件写入sdcard

java

我正在尝试从Http帖子回复文件写入 sdcard 上的文件。一切正常,直到检索到字节数据数组为止。

我尝试WRITE_EXTERNAL_STORAGE在清单中设置权限,并尝试了许多在网上找到的教程的不同组合。

我所能找到的只是使用活动的openFileOutput("",MODE_WORLD_READABLE)方法,但是我的应用程序如何通过线程来写入文件。具体来说,当必须写入文件时,会从另一个线程中调用一个线程,因此即使我尝试了活动对象,也无法使用它。

该应用程序已经走了很长一段路,我无法更改当前编写该应用程序的方式。

拜托,有人帮我吗?


代码

File file = new File(bgdmanip.savLocation);
FileOutputStream filecon = null;
filecon = new FileOutputStream(file);

byte[] myByte;
myByte = Base64Coder.decode(seReply);

bos.write(myByte);
filecon.write(myByte);
myvals = x * 11024;

bgdmanip.savLocation保存整个文件路径。seReplyHttpPost响应的字符串回复。第二组代码参考进行循环x。文件已创建,但仍为0字节。


阅读 226

收藏
2020-09-08

共1个答案

一尘不染

openFileOutput()方法将数据写入应用程序的专用数据区域(而不是SD卡),因此可能不是您想要的。您应该能够调用Environment.getExternalStorageDirectory()以获取SD卡的根路径,并使用该路径创建一个FileOutputStream。从那里开始,只需使用标准的java.io例程。

2020-09-08