Как читать текстовый файл в Android?

Я сохраняю детали в файле out.txt, который создал текстовый файл в data/data/new.android/files/out.txt. Я могу добавить информацию в текст, однако я не могу прочитать этот файл. Для чтения файла я использовал следующие процедуры:

File file = new File( activity.getDir("data", Context.MODE_WORLD_READABLE), "new/android/out.txt");
 BufferedReader br = new BufferedReader(new FileReader(file));

Кто-нибудь может помочь мне решить эту проблему?

С уважением, Солнечный.

Ответ 1

@hermy answer использует dataIO.readLine(), который теперь устарел, поэтому альтернативные решения этой проблемы можно найти в Как читать текстовый файл на Android?, Я лично использовал @SandipArmalPatil ответ... сделал именно так, как нужно.

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);
                text.append('\n');
     }
     br.close() ;
 }catch (IOException e) {
    e.printStackTrace();           
 }

TextView tv = (TextView)findViewById(R.id.amount);  
tv.setText(text.toString()); ////Set the text to text view.

Ответ 2

Вы можете читать строку за раз с этим:

FileInputStream fis;
final StringBuffer storedString = new StringBuffer();

try {
    fis = openFileInput("out.txt");
    DataInputStream dataIO = new DataInputStream(fis);
    String strLine = null;

    if ((strLine = dataIO.readLine()) != null) {
        storedString.append(strLine);
    }

    dataIO.close();
    fis.close();
}
catch  (Exception e) {  
}

Измените значение if на время, чтобы прочитать все.

Ответ 3

Просто поместите свой файл (т.е. named yourfile) внутри папки res/raw (вы можете создать, если не существует) внутри вашего проекта. Ресурс R.raw.yourfile будет автоматически генерироваться sdk. Чтобы получить строку текстового файла, просто используйте код, предложенный Vovodroid в следующем сообщении: Android файл сырого файла для чтения

 String result;
    try {
        Resources res = getResources();
        InputStream in_s = res.openRawResource(R.raw.yourfile);

        byte[] b = new byte[in_s.available()];
        in_s.read(b);
        result = new String(b);
    } catch (Exception e) {
        // e.printStackTrace();
        result = "Error: can't show file.";
    }