我正在制作圣经应用程序,我想打印一个特定的章节并突出显示一个特定的行

时间:2017-09-18 08:35:48

标签: java

我正在尝试在Eclipse中执行相同操作以打印文本文件并突出显示特定行,但我只能读取文本文件而不能读取其中的行。以下是我的代码:

import java.io.*;

public class Bible {
    public static void main(String[] args) {
        try {
            FileReader reader = new FileReader("temp.txt");
            int character;

            while ((character = reader.read()) != -1) {
                System.out.print((char) character);
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

逐行读取文件的正确代码是

public static void main(String[] args) {
        BufferedReader br = null;
        FileReader fr = null;

        try {
            //br = new BufferedReader(new FileReader(FILENAME));
            fr = new FileReader(FILENAME);
            br = new BufferedReader(fr);
            String sCurrentLine;

            while ((sCurrentLine = br.readLine()) != null) {
                System.out.println(sCurrentLine);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)
                    br.close();
                if (fr != null)
                    fr.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }

现在要突出显示的代码。

有多种选择。

在文件中使用html代码,例如

origString = origString.replaceAll(textToHighlight,"<font color='red'>"+textToHighlight+"</font>");

Textview.setText(Html.fromHtml(origString));

使用spannable文本

String  text = "Test"; 
Spannable spanText = Spannable.Factory.getInstance().newSpannable(text);
spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), 14, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spanText);

使用某些第三方库     EmphasisTextView和     Android TextView Link Builder