我正在通过 ajax 以二进制代码的形式检索图片文件,然后 javascript 将其传递给 android 上的 java,而 android 正在获取二进制代码,但我无法将其保存...我尝试了很多不同的方法并且什么都没用。
到目前为止,java 上的代码如下所示:
public void setFile(String sFileName, String sBody){
try
{
//Log.w("setfile", sBody);
File root = new File(Environment.getExternalStorageDirectory(), local_address);
if (!root.exists()) {
root.mkdirs();
}
File gpxfile = new File(root, sFileName);
FileOutputStream aFileOutStream = new FileOutputStream(gpxfile);
DataOutputStream aDataOutputStream = new DataOutputStream(aFileOutStream);
aDataOutputStream.writeUTF(sBody);
aDataOutputStream.flush();
aDataOutputStream.close();
aFileOutStream.close();
//FileWriter writer = new FileWriter(gpxfile);
//writer.append(sBody);
//writer.flush();
//writer.close();
//Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
}
catch(IOException e)
{
e.printStackTrace();
}
}
我知道 java 正在工作,因为如果我取消注释这一行
//Log.w("setfile", sBody);
log cat 会返回 javascript 发送给 java 的二进制代码
最佳答案
是否设置了保存到sd卡的权限?
https://developer.android.com/guide/topics/data/data-storage.html和 https://developer.android.com/reference/android/Manifest.permission.html ( https://developer.android.com/reference/android/Manifest.permission.html#WRITE_EXTERNAL_STORAGE )
关于java将二进制代码保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10523801/