我正在尝试将文本附加到存储在模拟/ 0 /..文件夹(不带SD卡的外部存储设备)中的文件中
FileOutputStream fileOutputStream = new FileOutputStream(capturesFile, true);
OutputStreamWriter writer = new OutputStreamWriter(fileOutputStream);
String data = "my data";
writer.append(data);
writer.close();
fileOutputStream.flush();
fileOutputStream.close();
这段代码不能正常工作,我真的不明白为什么。模拟位置是一个问题(愚蠢的问题,但此时......)我已经尝试了许多方法,没有任何积极的解决方案。
是否有人对此问题有所了解。
答案 0 :(得分:1)
使用此代码
try {
FileWriter fw = new FileWriter("path/of/file",true);
fw.write("myData");
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
首先确保您已获得编写文件所需的权限,即< - p>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
和
if (ContextCompat.checkSelfPermission(context,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE_EXT_STORAGE);
}
在您的活动中。
第二,请检查您的目录路径。您可能有一些机会使用错误的路径。获取内部存储的直接路径的最简单方法是 -
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data" + getApplicationContext().getPackageName();
File file = new File(path + "/File.txt");
您可以根据您的要求使用此方法来编写文件 -
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(file));
outputStreamWriter.append("My Data");
outputStreamWriter.flush();
outputStreamWriter.close();
} catch (IOException e) {
e.printStackTrace();
}