Загрузите простой текстовый файл в Android Studio
Получил новый проект с использованием новой Android Studio IDE от Google.
Я пытаюсь загрузить простой текстовый файл с помощью InputStreamReader
. Я получаю исключение, не найденное в файле. Теперь нет никаких активов/папок. Я попытался создать его и добавить свой файл в разных местах (в корне проекта, в корневом каталоге .java файла и т.д.). Я попытался переместить файл, но все равно получить файл не найдено.
Теперь, когда Eclipse никогда не возникало проблем, поскольку есть папка с ресурсами, созданная любым шаблоном.
Кто-нибудь знает, куда должны идти активы или как их загрузить?
Здесь используется код, он не работает на .open():
InputStream iS = resources.getAssets().open("bla.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(iS));
Я также пробовал этот код в Eclipse, он работает, и содержимое файла загружается. Таким образом, возможно, в Android Studio требуется шаг.
Ответы
Ответ 1
- Шаг 1: Открыть в файле Name_Project-Name_Project.iml.
- См. строку: option name= "ASSETS_FOLDER_RELATIVE_PATH" value = "/src/main/assets"
- Шаг 2: Создайте подпапки "активы" в основной папке.
- Шаг 3: Поместите файл в эту папку.
- Шаг 4: Загрузите его. Готово.
Ответ 2
Этот код будет работать для вас. Он будет извлекать все данные из файла.
public class Quiz extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quiz);
try {
PlayWithRawFiles();
} catch (IOException e) {
Toast.makeText(getApplicationContext(),
"Problems: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}// onCreate
public void PlayWithRawFiles() throws IOException {
String str="";
StringBuffer buf = new StringBuffer();
InputStream is = this.getResources().openRawResource(R.raw.ashraf);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
if (is!=null) {
while ((str = reader.readLine()) != null) {
buf.append(str + "\n" );
}
}
is.close();
TextView tv=(TextView)findViewById(R.id.tv1);
tv.setText(buf.toString());
}//
}