事情很简单,但没有按预期的那样进行。
我添加了一个文本文件作为原始资源。文本文件包含如下文本:
b) 如果适用法律要求对本软件作出任何保证,则所有此类保证的有效期均限于自交付之日起九十(90)天。
(c) 虚拟定向运动、其经销商、分销商、代理商或员工提供的任何口头或书面信息或建议均不得构成担保或以任何方式扩大本协议规定的任何担保范围。
(d) (仅限美国)有些州不允许排除默示担保,因此上述排除可能不适用于您。本保证为您提供了特定的法律权利,您还可能拥有因州而异的其他法律权利。
在我的屏幕上,我有这样一个布局:
<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();
}
文本get已经显示,但是每行之后我都会得到一个奇怪的字符[]如何删除该字符?我想这是新的路线。
工作溶液
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();
}
12条答案
按热度按时间hgqdbh6s1#
这是另一种方法,肯定会工作,但我不能让它读取多个文本文件,以查看在多个文本视图在一个单一的活动,任何人都可以帮助?
gdx19jrr2#
以下是从原始文件夹读取文本文件的简单方法:
vd8tlhqk3#
下面是weekens和vovodroid的混合解决方案。
它比vovodroid解更正确,比weekens解更完整。
oxalkeyp4#
如果使用apache“commons io”中的ioutils,则更容易:
依赖项:http://mvnrepository.com/artifact/commons-io/commons-io
Maven:
grad尔:
q8l4jmvw5#
有了kotlin,你只需要一行代码:
甚至声明扩展函数:
然后直接使用它:
bvk5enib6#
@borislemke你可以用类似的方法
tp5buhyn7#
您可以使用:
yftpprvb8#
下面是kotlin中的一个实现
yqkkidmi9#
不如这样做:
从活动中,添加
或者从测试用例中,添加
注意你的错误处理——当你的资源必须存在或者(非常?)出错时,不要捕捉并忽略异常。
omjgkv6w10#
wgxvkvu911#
如果使用基于字符的bufferedreader而不是基于字节的inputstream呢?
别忘了
readLine()
跳过新台词!83qze16e12#
1.首先在res文件夹中创建一个目录文件夹,并将其命名为raw;2.在先前创建的raw目录文件夹中创建一个.txt文件,并将其命名为任何名称,如articles.txt。。。。3.将所需文本复制并粘贴到您创建的.txt文件“articles.txt”中4.不要忘记在main.xml mainactivity.java中包含文本视图
希望成功!