我是个大人物......请光临我
我有这个代码从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;大家好"以后两行你好
答案 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");