что такое метод readStream ()?я просто нигде не могу его найти, - PullRequest
19 голосов
/ 04 декабря 2011

Я искал, как использовать ресурсы в каталоге "assets", затем я нашел фрагмент:

AssetManager assets = getAssets();
((TextView)findViewById(R.id.txAssets)).setText(**readStream**(assets.open("data.txt")));

я просто не могу найти метод readStream, его нет в google apis Я пытался загрузить новейший документ Java API, но до сих пор не могу найти его, кто-нибудь знает это?

Ответы [ 3 ]

25 голосов
/ 04 декабря 2011

Как сказал @Felix, это пользовательский метод.На странице, на которую вы ссылались, они определили readStream так:

  private String readStream(InputStream is) {
    try {
      ByteArrayOutputStream bo = new ByteArrayOutputStream();
      int i = is.read();
      while(i != -1) {
        bo.write(i);
        i = is.read();
      }
      return bo.toString();
    } catch (IOException e) {
      return "";
    }
}
16 голосов
/ 18 июня 2013

Это лучшее решение:

private String readStream(InputStream is) throws IOException {
    StringBuilder sb = new StringBuilder();  
    BufferedReader r = new BufferedReader(new InputStreamReader(is),1000);  
    for (String line = r.readLine(); line != null; line =r.readLine()){  
        sb.append(line);  
    }  
    is.close();  
    return sb.toString();
}

Это намного быстрее, чем ByteArrayOutputStream логика.

3 голосов
/ 01 октября 2013

Согласен с авиомаксим.

private static String readStream(InputStream is) {

        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();

        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
        } catch (IOException e) {
            Log.e(TAG, "IOException", e);
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                Log.e(TAG, "IOException", e);
            }
        }
        return sb.toString();
    }
...