1

我正在使用 getFilesDir() + 文件名创建一个文件,我得到的是 filesfileName.txt,你能告诉我为什么我得到这个文件名而不是 fileName.txt.. 谢谢你的关心。


File file = new File(mContext.getFilesDir() + fileName+ ".txt");
            if (!file.exists()) {

                file.createNewFile();
                FileWriter f;
                try {

                    f = new FileWriter(mContext.getFilesDir() + fileName
                            + ".txt");
                    f.write(fbFriendList);
                    f.flush();
                    f.close();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
4

4 回答 4

1

您应该对文件使用重载的构造函数,而不是使用+来连接文件路径,这将为您添加路径分隔符/。您也可以将File作为参数传递给 Filewriter 构造函数,而不是用字符串重复自己:

File file = new File(mContext.getFilesDir(), fileName+ ".txt");

FileWriter f;

try {
    f = new FileWriter(file);
    f.write(fbFriendList);
    f.flush();
    f.close();
} catch (IOException e1) {
    e1.printStackTrace();
}

更多信息请参考FileFileWriter的官方 API 文档

于 2012-07-26T09:53:19.507 回答
1

更好地使用 Path.Combine 创建 FullPath-Strings:

File file = new File(Path.Combine(mContext.getFilesDir(), fileName+ ".txt"));
于 2012-07-26T09:38:58.580 回答
0

您必须添加"/".

File file = new File(mContext.getFilesDir() + "/" + fileName+ ".txt");

我建议使用openFileOutput(String name, int mode ) 方法 - 创建私有文件并将其写入内部存储。

Writer out
   = new BufferedWriter(
           new OutputStreamWriter(openFileOutput(FILENAME, Context.MODE_PRIVATE)));
于 2012-07-26T09:39:43.637 回答
0

Do this way

File file = new File(podcastFolder + File.separator + fileName + ".txt");
于 2012-07-26T09:41:55.007 回答