事情很簡單,但不應按預期工作。Android閱讀文本原始資源文件
我有一個文本文件作爲原始資源添加。該文本文件包含文本,如:
B)如果適用法律要求提供與對於 軟件的任何擔保,所有此類擔保在 有效期僅限於九十(自交貨之日起90) DAYS 。
(c)中的口頭或書面的信息或 建議都VIRTUAL定向, ITS經銷商,分銷商,代理或 僱員將CREATE以任何方式保證或 提高任何 擔保本文提供的範圍。
(d)(美國只)一些州不 ALLOW暗示 擔保的排除,因此上述排除可能 不適用於您。本保修提供 您具體的法律權利,您可能還有其他法律權利,因爲這些 不同國家之間不同。
在我的屏幕我有一個這樣的佈局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="1.0"
android:layout_below="@+id/logoLayout"
android:background="@drawable/list_background">
<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/txtRawResource"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dip"/>
</ScrollView>
</LinearLayout>
讀取原始資源的代碼是:
TextView txtRawResource= (TextView)findViewById(R.id.txtRawResource);
txtDisclaimer.setText(Utils.readRawTextFile(ctx, R.raw.rawtextsample);
public static String readRawTextFile(Context ctx, int resId)
{
InputStream inputStream = ctx.getResources().openRawResource(resId);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
try {
i = inputStream.read();
while (i != -1)
{
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
return null;
}
return byteArrayOutputStream.toString();
}
文本得到的顯示,但在每行後,我收到了奇怪的人物[]如何刪除該人物?我認爲這是新線。
工作液
public static String readRawTextFile(Context ctx, int resId)
{
InputStream inputStream = ctx.getResources().openRawResource(resId);
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
StringBuilder text = new StringBuilder();
try {
while ((line = buffreader.readLine()) != null) {
text.append(line);
text.append('\n');
}
} catch (IOException e) {
return null;
}
return text.toString();
}
我不知道該Inputstream.available()這裏是正確的選擇,而讀取n到一個ByteArrayOutputStream直到n ==可-1。 – ThomasRS 2012-04-30 08:32:22
這可能無法適用於大型資源。它取決於輸入流讀取緩衝區的大小,並且只能返回一部分資源。 – d4n3 2012-06-29 06:19:13
@ d4n3是正確的,輸入流可用方法的文檔狀態爲:「返回可讀取或跳過的字節的估計數量,不會阻塞更多的輸入 請注意,此方法提供了這樣一個弱保證,它不是在實踐中非常有用「 – ozba 2013-04-10 14:18:30