Как я могу прочитать текстовый файл в Android?
Я хочу прочитать текст из текстового файла. В приведенном ниже коде возникает исключение (это означает, что он идет к catch
блок). Я положил текстовый файл в папку приложения. Где я должен поместить этот текстовый файл (Мани.тхт) для того, чтобы прочитать его правильно?
try
{
InputStream instream = openFileInput("E:testsrccomtestmani.txt");
if (instream != null)
{
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line,line1 = "";
try
{
while ((line = buffreader.readLine()) != null)
line1+=line;
}catch (Exception e)
{
e.printStackTrace();
}
}
}
catch (Exception e)
{
String error="";
error=e.getMessage();
}
7 ответов:
попробуйте это :
Я предполагаю, что ваш текстовый файл находится на sd-карте
//Find the directory for the SD Card using the API //*Don't* hardcode "/sdcard" File sdcard = Environment.getExternalStorageDirectory(); //Get the text file File file = new File(sdcard,"file.txt"); //Read text from file StringBuilder text = new StringBuilder(); try { BufferedReader br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { text.append(line); text.append('\n'); } br.close(); } catch (IOException e) { //You'll need to add proper error handling here } //Find the view by its id TextView tv = (TextView)findViewById(R.id.text_view); //Set the text tv.setText(text.toString());
следующие ссылки также могут помочь вам :
как я могу прочитать текстовый файл с SD-карты в Android?
если вы хотите прочитать файл с sd-карты. Тогда следующий код может быть полезен для вас.
StringBuilder text = new StringBuilder(); try { File sdcard = Environment.getExternalStorageDirectory(); File file = new File(sdcard,"testFile.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { text.append(line); Log.i("Test", "text : "+text+" : end"); text.append('\n'); } } catch (IOException e) { e.printStackTrace(); } finally{ br.close(); } TextView tv = (TextView)findViewById(R.id.amount); tv.setText(text.toString()); ////Set the text to text view. } }
если вы хотите, чтобы прочитать файл из папки активов, то
AssetManager am = context.getAssets(); InputStream is = am.open("test.txt");
или если вы хотите прочитать этот файл из
res/raw
foldery, где файл будет индексироваться и доступен по идентификатору в файле R:InputStream is = getResources().openRawResource(R.raw.test);
поместите свой текстовый файл в актив...& читать файл из этой папки...
ниже ссылки...
http://www.technotalkative.com/android-read-file-from-assets/
http://sree.cc/google/reading-text-file-from-assets-folder-in-android
чтение простого текстового файла
надеюсь, что это поможет...
сначала вы храните текстовый файл в папке raw.
private void loadWords() throws IOException { Log.d(TAG, "Loading words..."); final Resources resources = mHelperContext.getResources(); InputStream inputStream = resources.openRawResource(R.raw.definitions); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); try { String line; while ((line = reader.readLine()) != null) { String[] strings = TextUtils.split(line, "-"); if (strings.length < 2) continue; long id = addWord(strings[0].trim(), strings[1].trim()); if (id < 0) { Log.e(TAG, "unable to add word: " + strings[0].trim()); } } } finally { reader.close(); } Log.d(TAG, "DONE loading words."); }
попробуй такое
try { reader = new BufferedReader(new InputStreamReader(in,"UTF-8")); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } String line=""; String s =""; try { line = reader.readLine(); } catch (IOException e) { e.printStackTrace(); } while (line != null) { s = s + line; s =s+"\n"; try { line = reader.readLine(); } catch (IOException e) { e.printStackTrace(); } } tv.setText(""+s); }
попробуйте этот код
public static String pathRoot = "/sdcard/system/temp/"; public static String readFromFile(Context contect, String nameFile) { String aBuffer = ""; try { File myFile = new File(pathRoot + nameFile); FileInputStream fIn = new FileInputStream(myFile); BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn)); String aDataRow = ""; while ((aDataRow = myReader.readLine()) != null) { aBuffer += aDataRow; } myReader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return aBuffer; }
// working public static String getStringFromFile (String filename) throws Exception { //Find the directory for the SD Card using the API //*Don't* hardcode "/sdcard" File sdcard = Environment.getExternalStorageDirectory(); //Get the text file File file = new File(sdcard,filename); FileInputStream fin = new FileInputStream(file); String ret = convertStreamToString(fin); //Make sure you close all streams. fin.close(); return ret; }