问题描述
- Android手机在内置存储卡中找不到/data/目录。
-
android初学
写了个简单的file与io程序想在内置存储卡中创建一个简单的文件。
但他总是爆出
error opening trace file: No such file or directory (2)
java.io.FileNotFoundException: /data/messageself.txt: open failed: EACCES (Permission denied)
这样的错误。。
于是我就想是不是文件夹不存在 就手动的在手机上创建了个data文件夹。可是问题没改变依然爆出这样的错误。。。
上代码::package com.example.combat_12_15_createfileinlocal; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { private String LocalPath; private String filename = "messageself.txt"; private static final String ACTIVITY_TAG="LogDemo"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(MainActivity.ACTIVITY_TAG, "This is Information1"); LocalPath = Environment.getDataDirectory() + File.separator; System.out.println(LocalPath); File file = new File(LocalPath + filename); try { Log.i(MainActivity.ACTIVITY_TAG, "This is Information2"); if(!file.exists()) { Log.i(MainActivity.ACTIVITY_TAG, "This is Information3"); file.createNewFile(); Log.i(MainActivity.ACTIVITY_TAG, "This is Information4"); }else{ System.out.println("NO exists"); return; } } catch (IOException e) { e.printStackTrace(); } try { FileWriter fos = new FileWriter(file); BufferedWriter bos = new BufferedWriter(fos); bos.write("Test"); } catch (IOException e) { e.printStackTrace(); } }
}
之后我在网上谷歌了一段代码说是可以在内置存储卡中创建文件。。但是我创建了之后却找不到这个文件在哪里,,
FileOutputStream fos=context.openFileOutput(filename, Context.MODE_PRIVATE);用的这个方法创建的文件。。谷歌了下说在/data/data/中和apk同一路径。妈蛋我找了半天根本没这个文件夹。。。其实我也很好奇我的apk到底安装在哪里了。
解决方案
手机内存。希望可以帮你解决
解决方案二:
androidmanifest.xml 还没有添加文件读写权限吧
解决方案三:
android.permission.WRITE_EXTERNAL_STORAGE 添加 写入SDCard的权限
你上面的 是写入SDCard的,,,路径问题
解决方案四:
如果你直接去手机目录找的话,有些文件是需要root之后才可以看到的
时间: 2024-10-06 10:16:47