我的课程在/src/com.example.myapp/
,我也有mytext.txt
的文字。
但是,当我引用static File f = new File("mytext.txt"));
时,它找不到它,即使该文件与该类位于同一目录中。
我需要做什么?它实际上在看什么目录?
资产是只读的。我需要一个可以阅读和更新文本文件的地方。
答案 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)
资产/
这是空的。您可以使用它来存储原始资产文件。您在此处保存的文件将按原样编译为.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();
}
希望它会帮助你ツ