Ali Allahyar
Ali Allahyar

Reputation: 341

Android: How to get a file path from R.raw in res folder?

I have a text file called words.txt in folder raw within android res folder. I don't know how to get its path to make a new file with the given path. I use the code below, but seems it just doesn't work:

File file = new File("res/raw/words.txt").getAbsoluteFile();
String filePath = file.getAbsolutePath();
File wordFile = new File(filePath);

Upvotes: 3

Views: 8181

Answers (2)

Amulya Khare
Amulya Khare

Reputation: 7698

You can read the raw/words.txt as follows:

// The InputStream opens the resourceId and sends it to the buffer
InputStream is = this.getResources().openRawResource(R.raw.words);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String readLine = null;

try {
    // While the BufferedReader readLine is not null 
    while ((readLine = br.readLine()) != null) {
    Log.d("TEXT", readLine);
}

// Close the InputStream and BufferedReader
is.close();
br.close();

} catch (IOException e) {
    e.printStackTrace();
}

Note: this code must be inside an Activity class, as this.getResources() refers to Context.getResources()

Upvotes: 3

Gabe
Gabe

Reputation: 1249

You can't write to your own app's res folder. It is not modifiable.

You can create a file here though: http://developer.android.com/reference/android/content/Context.html#getFilesDir%28%29

If you want to use words.txt as a baseline, you can read from it and copy it to a modifiable file at runtime.

Upvotes: 0

Related Questions