在android studio中读取文件并在手机上进行测试

在android studio中读取文件并在手机上进行测试,android,Android,我试图从Android Studio中的文本文件中读取 FileInputStream fin=new FileInputStream("./quizdata.txt"); int size = fin.available(); byte[] buffer = new byte[size]; fin.read(buffer); fin.close(); 现在,当我在连接到我电脑的手机上运行此测试时,android找不到此文件。我最好的猜测是,文件应该在我的手机上,而不是电脑上 如果是,我应该将

我试图从Android Studio中的文本文件中读取

FileInputStream fin=new FileInputStream("./quizdata.txt");
int size = fin.available();
byte[] buffer = new byte[size];
fin.read(buffer);
fin.close();
现在,当我在连接到我电脑的手机上运行此测试时,android找不到此文件。我最好的猜测是,文件应该在我的手机上,而不是电脑上

如果是,我应该将此文件存储在手机中的哪个位置


谢谢

您需要将文件添加到您的Android代码中,而不是添加到您的Android手机中。您需要将其保存在assets文件夹(src/main/assets)或raw文件夹(src/res/raw)中

如果将其保存在原始文件夹中,则可以通过以下方式读取:

// you don't need to have the file extension. Note that you can't use uppercase
InputStream is = Context.getResources().openRawResource(R.raw.quizdata);
AssetManager am = context.getAssets();
InputStream is = am.open("quizdata.txt");
如果将其保存在资产文件夹中,则可以通过以下方式读取:

// you don't need to have the file extension. Note that you can't use uppercase
InputStream is = Context.getResources().openRawResource(R.raw.quizdata);
AssetManager am = context.getAssets();
InputStream is = am.open("quizdata.txt");
要获取文件中的所有行,可以使用以下代码:

// getting all the line
BufferedReader r = new BufferedReader(new InputStreamReader(is));
StringBuilder quiz = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
    quiz.append(line).append('\n');
}

你为什么不把它包含在你的应用程序包中,然后开始阅读呢!您可以将此文件放在资产文件夹中并从中读取,否则您也可以将其存储在手机本地存储中,然后从中使用