.txt文件需要保存在SD卡中。
Save("n" + String.valueOf(key) + ".txt");
private void Save(String FileName){
File fileName = null;
String sdState = android.os.Environment.getExternalStorageState();
if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
File sdDir = android.os.Environment.getExternalStorageDirectory();
fileName = new File(sdDir, "FlyNote/"+FileName);
} else {
fileName = context.getCacheDir();
}
if (!fileName.exists())
fileName.mkdirs();
try {
FileWriter f = new FileWriter(fileName);
f.write(editText2.getText().toString());
f.flush();
f.close();
} catch (Exception e) {
}
}
但是在SD卡文件中保存为文件夹。 文件夹“n5.txt”和其他......
答案 0 :(得分:2)
使用
File dir= new File(sdDir.getAbsolutePath(), "FlyNote");
dir.mkdirs(); //CREATE DIR HERE
File file = new File(dir, FileName);//CREATE FILE HERE
而不是
fileName = new File(sdDir, "FlyNote/"+FileName);
答案 1 :(得分:0)
当您测试是否存在时,您正在搜索Flynote/Filename
是否存在,如果它不存在,则使用mkdirs
创建一个。{/ p>
fileName.mkdirs()
创建一个包含该文件名称的目录。因此,您会发现错误。您的mkdirs
应仅适用于Flynote
而非Flynote/+FileName
答案 2 :(得分:0)
试试这个,
如果您的目标是文件,为什么使用“mkdir”使目录不是文件。
此代码用于创建文件:
File f = new File("/sdcard/n5.txt");
FileWriter fw = new FileWriter(f);
BufferedWriter bw = new BufferdWriter(fw);
bw.write("Hello");
检查文件夹是否存在......
File f = new File("/sdcard/myfolder");
if (f.exists()){
// do what u want
}
else{
// doesnt exists
}
答案 3 :(得分:0)
这里给出的大部分方法都很好......您也可以使用以下代码:
public static void addToFile(String file,String message){
try {
FileOutputStream fos = new FileOutputStream(file,true);
fos.write(("\n"+message).getBytes());
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
此处“文件”是一个字符串,其中包含文件的路径,例如:File =“/ sdcard / parentPath / FileName.txt”和“message”显示您想要输入文件的消息。 (考虑到文件包含txt内容)