我正在尝试从Http帖子回复文件写入 sdcard 上的文件。一切正常,直到检索到字节数据数组为止。
我尝试WRITE_EXTERNAL_STORAGE在清单中设置权限,并尝试了许多在网上找到的教程的不同组合。
WRITE_EXTERNAL_STORAGE
我所能找到的只是使用活动的openFileOutput("",MODE_WORLD_READABLE)方法,但是我的应用程序如何通过线程来写入文件。具体来说,当必须写入文件时,会从另一个线程中调用一个线程,因此即使我尝试了活动对象,也无法使用它。
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保存整个文件路径。seReply是HttpPost响应的字符串回复。第二组代码参考进行循环x。文件已创建,但仍为0字节。
bgdmanip.savLocation
seReply
HttpPost
x
该openFileOutput()方法将数据写入应用程序的专用数据区域(而不是SD卡),因此可能不是您想要的。您应该能够调用Environment.getExternalStorageDirectory()以获取SD卡的根路径,并使用该路径创建一个FileOutputStream。从那里开始,只需使用标准的java.io例程。
openFileOutput()
Environment.getExternalStorageDirectory()
FileOutputStream