不好用openfileout...
其他有什么方法么?
普通的创建文件直接报 open failed: EACCES (Permission denied) 的异常。
麻烦帮帮忙!
------解决方案--------------------
FileOutputStream os = ctx.openFileOutput(file.getName(),Context.MODE_WORLD_WRITEABLE);
------解决方案--------------------
- Java code
if (!file.exists()) { file.createNewFile(); } FileOutputStream os = ctx.openFileOutput(file.getName(), Context.MODE_WORLD_WRITEABLE); byte[] bytes = new byte[512]; int i = -1; while ((i = is.read(bytes)) > 0) { os.write(bytes); } os.close(); is.close(); String permission = "666"; try { String command = "chmod " + permission + " " + apkPath + "/" + destapkName; Runtime runtime = Runtime.getRuntime(); runtime.exec(command); } catch (IOException e) { e.printStackTrace(); }
------解决方案--------------------
如果packagename,不是你当前调用createnewfile的应用的包名,是没有权限的
------解决方案--------------------
我看了一下,/data/data/packagename/files中files的权限是700,system system ,证明只有system权限才有在里面创建文件的权限,你如果是在想要在里面创建文件的话需要手动修改files文件的权限。
------解决方案--------------------
- Java code
import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import android.app.Activity;import android.os.Bundle;public class FileTestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //创建输入输出流对象 FileOutputStream outfile = null; FileInputStream infile = null; try { //创建openFile的两个对象 openFileOutput()的两个参数 //第一个是文件名,第二个是属性,0代表只允许应用程序操作这个文件 outfile = this.openFileOutput("test.txt", 0); infile = this.openFileInput("test.txt"); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } DataOutputStream dout = null ; try { //写文件 dout = new DataOutputStream(outfile ); dout.writeUTF("testtesttesttesttesttest"); dout.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } DataInputStream din = null; //读文件 din = new DataInputStream(infile); String result = null; try { result = din.readLine(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(result); }}