Что такое метод readStream()? я просто не могу найти его нигде,
Я искал, как использовать ресурсы в каталоге "assets", затем я нахожу фрагмент:
AssetManager assets = getAssets();
((TextView)findViewById(R.id.txAssets)).setText(**readStream**(assets.open("data.txt")));
Я просто не могу найти то, что метод readStream, это не в google-apis
Я попытался загрузить новейший документ Java api, но все равно не могу его найти, кто-нибудь знает это?
Ответы
Ответ 1
Как @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 "";
}
}
Ответ 2
Это лучшее решение:
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
Согласитесь с 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();
}