studio iconos icon ic_launcher generate generar asset android assets

iconos - generate ic_launcher android



¿Cuál es el método readStream()? Simplemente no puedo encontrarlo en ninguna parte, (3)

Busqué cómo usar los recursos en el directorio "elementos", luego encuentro un fragmento de código:

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

Simplemente no puedo encontrar cuál es el método readStream, no está en las API de Google. Intenté descargar el documento Java más nuevo, pero aún no lo encuentro. ¿Alguien lo sabe?


Como dijo @Felix, es un método definido por el usuario. En la página que enlazaste, definieron readStream de esta manera:

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 ""; } }


De acuerdo con aviomaksim.

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(); }


Esta es la mejor solución:

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(); }

Es mucho más rápido que la lógica ByteArrayOutputStream .