如何从最后一行读取文本文件到第一行

时间:2011-10-01 01:00:23

标签: java android

我需要这个以反向运行,以便线条以相反的顺序出现。是否有快速方式来翻转TextView或类似的东西?谢谢你的帮助。

try {
// Create a URL for the desired page
URL url = new URL("text.txt");

// Read all the text returned by the server
BufferedReader MyBr = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
line = MyBr.readLine();
TextView textview1 = (TextView) findViewById(R.id.textView1);

StringBuilder total = new StringBuilder();

while ((line = MyBr.readLine()) != null) {
total.append(line + "\r\n");}

textview1.setText(total);
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/wonderfull.ttf");
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setTypeface(tf);
MyBr.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}

4 个答案:

答案 0 :(得分:1)

由于您要更改代码中的UI,因此必须在UI线程上运行。当然你知道在UI线程上做这样的I / O是一个禁忌,可以轻松创建ANR。所以我们假设这是伪代码。您最好的选择是在阅读流时反转内容。例如,你可以insert at the front of the StringBuilder

答案 1 :(得分:0)

您也可以直接插入可编辑:

Editable e = textview1.getEditableText();
while ((line = MyBr.readLine()) != null) {
    e.insert(0, line + "\r\n");
}

答案 2 :(得分:0)

您可以使用此类:java.io.RandomAccessFile,http://download.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html

答案 3 :(得分:0)

我会将文件读入数组或数组列表,然后使用for循环将其从最后一个索引打印到第一个索引。