Writing a file to sdcard
android, file, file-io, java
Solution
The `openFileOutput()` method writes data to your application's private data area (not the SD card), so that's probably not what you want. You should be able to call `Environment.getExternalStorageDirectory()` to get the root path to the SD card and use that to create a `FileOutputStream`. From there, just use the standard java.io routines.
Problem
I'm trying to write a file from an Http post reply to a file on the sdcard. Everything works fine until the byte array of data is retrieved. I've tried setting `WRITE_EXTERNAL_STORAGE` permission in the manifest and tried many different combinations of tutorials I found on the net. All I could find was using the `openFileOutput("",MODE_WORLD_READABLE)` method, of the activity but how my app writes file is by using a thread. Specifically, a thread is invoked from another thread when a file has to be written, so giving an activity object didn't work even though I tried it. The app has come a long way and I cannot change how the app is currently written. Please, someone help me? CODE: ``` 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` holds the whole files path. `seReply` is a string reply from `HttpPost` response. The second set of code is looped with reference to `x`. The file is created but remains 0 bytes.