这个问题有很多例子。我试过但仍然无法正常工作。
Test.txt文件已创建。但是没有数据写入test.txt文件。
我的代码出了什么问题?我在Manifest
文件中获得了
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
代码:
String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() +
"/PrintFiles";
File file = new File(file_path+"/test.txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
FileOutputStream fos = null;
try {
fos = openFileOutput(file.getName(), Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] b = {65,66,67,68,69};
fos.write(b);
fos.flush();
fos.close();
答案 0 :(得分:3)
来自文档openFileOutput
将
Open a private file associated with this Context's application package for writing. Creates the file if it doesn't already exist.
这些文件位于。
之下data > data > your app id > files
但您的文件不在内部文件夹中,而是在外部存储中..
更改此行
fos = openFileOutput(file.getName(), Context.MODE_PRIVATE);
进入
fos=new FileOutputStream(file);
试试..
答案 1 :(得分:2)
原因是,您正在 SDCard 中创建文件,但使用内部存储进行书写。尝试如下......
String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() +
"/PrintFiles";
File file = new File(file_path+"/test.txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] b = {65,66,67,68,69};
fos.write(b);
fos.flush();
fos.close();