我以某种方式无法读取或写入文件。我使用以下命令获取文件名。这对大多数人来说可能是显而易见的,但我的Java有点弱。
private String fileName(int itemNum) {
final String DIR_PREFIX = "/MyDailySelfiesDir";
final String FILENAME_PREFIX = "/MyDailySelfieFile_";
File dir_0 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
String dirName = dir_0.getAbsolutePath() + DIR_PREFIX;
File dir = new File(dirName);
dir.mkdirs();
String name = dirName + FILENAME_PREFIX + itemNum + ".jpg";
File temp = new File(name);
Log.i(TAG, name + " can read? " + temp.canRead() + " can write? " + temp.canWrite());
return name;
}
AndroidManifest.xml看起来像这样,部分:
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="19" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我在Android Studio中,模仿Galaxy Nexus 5,API 18。
答案 0 :(得分:5)
尝试检查yourFile.exists()的值。除非你没有发布所有代码,否则你永远不会真正创建你的文件&#39; temp&#39;在您的设备上 - 您只创建了一个File对象。因此,如果它没有映射到Android文件系统中的真实文件,则无法读取或写入File对象。您可以使用File.createNewFile()创建文件。