I'm not getting any exceptions, but when I run...
InputStream deckFile = context.getAssets().open("cards.txt");
Then, deckFile.read() returns -1. The file is in the correct folder, and it is NOT empty.
This should be the easiest thing in the world...
EDIT: The AssetManager is indeed listing "cards.txt" as being there, so that shouldn't be the problem.
try below line of code
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);
the available method returns the total size of the asset...
Place your text file in the /assets
directory under the Android project. Use AssetManager
class to access it.
AssetManager am = context.getAssets();
InputStream is = am.open("test.txt");
Or you can also put the file in the /res/raw
directory, where the file will be indexed and is accessible by an id in the R file:
InputStream is = getResources().openRawResource(R.raw.test);
EDITED:
Try out the below method to read your file:
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 "";
}
}
I am sure it will help you.
The problem was that my file was too big, and was being compressed because of it's ".txt" extension. By renaming the file to a format that is normally compressed, ".mp3", there was no issue