「assets」ディレクトリの下でリソースの使用方法を検索し、スニペットを見つけました。
AssetManager assets = getAssets();
((TextView)findViewById(R.id.txAssets)).setText(**readStream**(assets.open("data.txt")));
readStreamメソッドとは何なのかわからない、それがgoogle apiにない私は最新のJava apiドキュメントをダウンロードしようとしましたが、それでも見つからないのですが、誰もが知っていますか?
@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 "";
}
}
これはより良い解決策です:
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ロジックよりもはるかに高速です。
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();
}