Чтение простого текстового файла

Я пытаюсь прочитать простой текстовый файл в своем примере приложения для Android. Я использую приведенный ниже код для чтения простого текстового файла.

1. InputStream inputStream = openFileInput("test.txt"); 2. InputStreamReader inputStreamReader = new InputStreamReader(inputStream); 3. BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 

Мои вопросы: Где я должен поместить этот файл "test.txt" в свой проект ?. Я попытался поместить файл в папку "res/raw" и "asset" но я получаю exception "FileNotFound" когда выполняется первый концерт написанного выше кода.

Спасибо за помощь

Solutions Collecting From Web of "Чтение простого текстового файла"

Поместите текстовый файл в каталог /assets в проекте Android. AssetManager доступа к нему используйте класс AssetManager .

 AssetManager am = context.getAssets(); InputStream is = am.open("test.txt"); 

Или вы также можете поместить файл в каталог /res/raw , где файл будет проиндексирован и доступен идентификатором в файле R:

 InputStream is = context.getResources().openRawResource(R.raw.test); 

попробуй это,

 package example.txtRead; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; import java.util.Vector; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class txtRead extends Activity { String labels="caption"; String text=""; String[] s; private Vector<String> wordss; int j=0; private StringTokenizer tokenizer; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); wordss = new Vector<String>(); TextView helloTxt = (TextView)findViewById(R.id.hellotxt); helloTxt.setText(readTxt()); } private String readTxt(){ InputStream inputStream = getResources().openRawResource(R.raw.toc); // InputStream inputStream = getResources().openRawResource(R.raw.internals); System.out.println(inputStream); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int i; try { i = inputStream.read(); while (i != -1) { byteArrayOutputStream.write(i); i = inputStream.read(); } inputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return byteArrayOutputStream.toString(); } } 

Вот как я это делаю:

 public static String readFromAssets(Context context, String filename) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(context.getAssets().open(filename))); // do reading, usually loop until end of file reading StringBuilder sb = new StringBuilder(); String mLine = reader.readLine(); while (mLine != null) { sb.append(mLine); // process line mLine = reader.readLine(); } reader.close(); return sb.toString(); } 

Используйте его следующим образом:

 readFromAssets(context,"test.txt") 

Наличие файла в папке с вашими assets требует использования этого фрагмента кода для получения файлов из папки с assets :

 yourContext.getAssets().open("test.txt"); 

В этом примере getAssets() возвращает экземпляр AssetManager а затем вы можете использовать любой метод, который вы хотите использовать в API AssetManager .

В Mono для Android ….

  try { System.IO.Stream StrIn = this.Assets.Open("MyMessage.txt"); string Content = string.Empty; using (System.IO.StreamReader StrRead = new System.IO.StreamReader(StrIn)) { try { Content= StrRead.ReadToEnd(); StrRead.Close(); } catch (Exception ex) { csFunciones.MostarMsg(this, ex.Message); } } StrIn.Close(); StrIn = null; } catch (Exception ex) { csFunciones.MostarMsg(this, ex.Message); } 

Чтобы прочитать файл, сохраненный в папке с ресурсами

 public static String readFromFile(Context context, String file) { try { InputStream is = context.getAssets().open(file); int size = is.available(); byte buffer[] = new byte[size]; is.read(buffer); is.close(); return new String(buffer); } catch (Exception e) { e.printStackTrace(); return "" ; } }