2016-10-26 3 views
0

Мне нужно решение для чтения текстового файла, который хранился во внутреннем хранилище. Я не хочу читать это по строкам. без использования цикла, как читать полный текстовый файл и хранить его в строке.Прочитать полный файл без цикла в android

BufferedReader br; 
String line; 
String data = ""; 
// String text=""; 
try { 
    br = new BufferedReader(new FileReader(new File(Environment.getExternalStorageDirectory(), "queue_mgr.txt"))); 
    while ((line = br.readLine()) != null) { 
     sb.append(line); 
    } 
    br.close(); 
} 
+1

Возможный дубликат [читать полный файл без использования цикла в Java] (http://stackoverflow.com/questions/14169661/read-complete-file-without-use-loop-in-java) –

+0

Я думаю, что решение не будет работать в Android. – iguarna

+0

Чего вы хотите достичь? На каком-то уровне будет цикл. Даже если бы был API для копирования текстового файла, реализация этого API имела бы некоторый цикл. Если вы хотите что-то более эффективное, вы можете использовать большой байтовый буфер вместо текста. См. Мой ответ ниже. –

ответ

0

Вы можете использовать большой буфер байтов и получить некоторую эффективность:

try 
{ 
    InputStream in = new FileInputStream (from); 
    OutputStream out = new FileOutputStream (to); 

    // Transfer bytes from in to out 
    byte[] buf = new byte[1024 * 10]; // 5MB would be about 500 iterations 
    int len; 
    while ((len = in.read (buf)) > 0) 
    out.write (buf, 0, len); 

    in.close(); 
    out.close(); 
    } 
} 
catch (FileNotFoundException e) 
{ 
    ... 
} 
catch (IOException e) 
{ 
    ... 
} 
+0

В этом примере будет читаться большой файл данных ??! –

+0

Попробуйте. Это работает? –

Смежные вопросы