Как читать текстовый файл в 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.";
}