我应该用什么文件夹存储文本文件?

时间:2014-11-13 05:35:15

标签: java android

我的课程在/src/com.example.myapp/,我也有mytext.txt的文字。

但是,当我引用static File f = new File("mytext.txt"));时,它找不到它,即使该文件与该类位于同一目录中。

我需要做什么?它实际上在看什么目录?

资产是只读的。我需要一个可以阅读和更新文本文件的地方。

3 个答案:

答案 0 :(得分:1)

使用assets文件夹。

这是一个例子......

Loading array from a text file in assets folder (Android)

您在根项目文件夹中创建assets文件夹,然后将文件放入其中。一旦它在那里,你可以这样访问:

getAssets().open("file.txt");

getAssets方法是您的活动/上下文的一部分。 Context承载了很多关于你的应用程序的信息。

如果您不在某个活动中,可以将Context传递给您的班级并使用此功能:

context.getAssets().open("file.txt");

答案 1 :(得分:0)

使用assets directory

  

资产/

     

这是空的。您可以使用它来存储原始资产文件。您在此处保存的文件将按原样编译为.apk文件,并保留原始文件名。您可以使用URI以与典型文件系统相同的方式导航此目录,并使用AssetManager将文件作为字节流读取。例如,这是纹理和游戏数据的好位置。

答案 2 :(得分:0)

如果您希望文件采用 EDIT 模式,您可以use Internal/External Storage

然后你可以把它读作:

String filePath = context.getFilesDir().getAbsolutePath();  //returns current directory.
File file = new File(filePath, fileName);
try {
    BufferedReader br = new BufferedReader(new FileReader(file));   
    while ((line = br.readLine()) != null) {
        text.append(line);
        text.append('\n');
    }
}
catch (IOException e) {

}
return text.toString(); //the output text from file.

您甚至可以写信给这个文件:

String filename = "myfile";
String string = "ur data";
FileOutputStream outputStream;

try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  outputStream.write(string.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

希望它会帮助你ツ