我正在Android Studio中创建一个项目,我的项目文件夹中有一个文本文件,每次编译时,我希望我的代码读取.txt文件。当每一件事都完成后,我希望.txt文件在.apk文件中。我不是想读SD卡等。
但我得到"文件未找到例外"每次我编译。在使用eclipse时,当你将.txt文件放在与项目相同的目录中时,代码可以找到.txt文件而没有问题但是在Android Studio中,它找不到我刚创建的文本文件。我在哪里将.txt文件放在项目文件夹中? 这是代码:
FileReader in = new FileReader("TEXTgreetingKeywords.txt");
final BufferedReader br = new BufferedReader(new InputStreamReader(in));
我曾经用同样的方法在Java中读取文本文件。我不明白为什么它不能使用Android,因为它也使用Java。
EDIT ------
我使用了资产经理,但我又遇到了同样的错误
AssetManager asset = getAssets();
try {
in = asset.open("text.txt");
} catch (IOException e) {
e.printStackTrace();
}
我是否必须将目录更改为" C:\ App \ main \ text.txt" ?
答案 0 :(得分:2)
读取文字文件来自资产:
在Resources目录中创建原始文件夹:
将文件粘贴 原始文件夹:
从文件:阅读文字
private String readText() {
InputStream inputStream = getResources().openRawResource(
R.raw.license_agreement);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
try {
i = inputStream.read();
while (i != -1) {
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return byteArrayOutputStream.toString();
}
希望它会对你有所帮助。
答案 1 :(得分:0)
完成R. Adang评论:
您正在寻找assets
文件夹。您必须将其放在与res
文件夹相同的位置。 assets
中的文件将包含在APK中。
您可以使用AssetManager在assets
中访问您的文件。使用context.getAssets()
答案 2 :(得分:-1)
在这种情况下,文件访问不仅是java的东西,你在这里也有android,这可能会产生问题。使用File
进行操作的是从应用程序位置打开文件。要访问您的文件目录,您应该使用:context.getFilesDir()
比使用基本的File
构造函数。我希望这就是你要找的东西