InputStream из папки Assets на Android возвращается пустым
Я не получаю никаких исключений, но когда я запускаю...
InputStream deckFile = context.getAssets().open("cards.txt");
затем, deckFile.read() возвращает -1. Файл находится в правильной папке, и он не пуст.
Это должно быть самой простой вещью в мире...
EDIT: AssetManager действительно перечисляет "карты".txt " как быть там, так что это не должно быть проблемой.
3 ответов
попробуйте ниже строки кода
InputStream is = getAssets().open("test.txt");
int size = is.available();
byte[] buffer = new byte[size]; //declare the size of the byte array with size of the file
is.read(buffer); //read file
is.close(); //close file
// Store text file data in the string variable
String str_data = new String(buffer);
доступный метод возвращает общий размер активов...
поместите текстовый файл в /assets
каталог под проектом Android. Использовать AssetManager
класс для доступа к нему.
AssetManager am = context.getAssets();
InputStream is = am.open("test.txt");
или вы также можете поместить файл в /res/raw
каталог, где файл будет индексироваться и доступен по идентификатору в файле R:
InputStream is = getResources().openRawResource(R.raw.test);
редактировать:
попробуйте метод ниже, чтобы прочитать файл:
public String convertStreamToString(InputStream p_is) throws IOException { /* * To convert the InputStream to String we use the * BufferedReader.readLine() method. We iterate until the BufferedReader * return null which means there's no more data to read. Each line will * appended to a StringBuilder and returned as String. */ if (p_is != null) { StringBuilder m_sb = new StringBuilder(); String m_line; try { BufferedReader m_reader = new BufferedReader( new InputStreamReader(p_is)); while ((m_line = m_reader.readLine()) != null) { m_sb.append(m_line).append("\n"); } } finally { p_is.close(); } Log.e("TAG", m_sb.toString()); return m_sb.toString(); } else { return ""; } }
Я уверен, что это поможет вам.
проблема заключалась в том, что мой файл был слишком большим и сжимался из-за этого ".расширение txt. Переименовав файл в формат, который обычно сжимается,".mp3", не было никаких проблем