你可以修复这段代码来读取text.file并在textview中显示吗?

时间:2014-03-29 12:41:56

标签: android notepad

我是个大人物......请光临我

我有这个代码从assets文件夹中读取txt.file并在textview中显示这个txt.file吗?

package com.example.text;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import android.app.Activity;
import android.content.Context;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.widget.TextView;

public class Text2 extends Activity {
    private TextView txt;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.text2);
            txt=(TextView)findViewById(R.id.textView1);        

            AssetManager assetManager = getAssets();
            InputStream inputStream = null;
            try {
                 inputStream = assetManager.open("hi.txt");
                 BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
                 StringBuilder total = new StringBuilder();
                 String line;
                 while ((line = r.readLine()) != null) {
                      total.append(line);
                 }
                 txt.setText(total.toString());
            }
            catch (IOException e){
                 e.printStackTrace();
            }

     }
}

它工作得很好,但我有一个问题....当我输入我的记事本时,例如:

大家好

您好

但是当我在模拟器中运行此代码时,您会看到:

hi everyonehello

为什么??? 我希望有第一个喜欢大家和两行以后有你好,但模拟器不做它......... 也在我的记事本中一切都很好....我的意思是在记事本中我有:

大家好

helllo

hi everyonehello

!!!!!!!!!!!!!! 我该怎么办??????

问题在哪里? 我想首先在我的模拟器中#34;大家好"以后两行你好

2 个答案:

答案 0 :(得分:1)

您正在使用不读取\ n或\ r。

的BufferReader readLine方法

读取一行文字。一条线被认为是由换行符('\ n'),回车符('\ r')或回车符中的任何一个终止,后面紧跟换行符。 返回: 包含行内容的String,不包括任何行终止字符;如果已到达流的末尾,则为null

http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine()

建议您使用同一类的简单读取方法。

答案 1 :(得分:0)

您只是附加字符串而不是换行符。尝试修改附加到:

total.append(line + "\n");