如何在读取文件时使用转义字符?

时间:2012-05-28 15:08:23

标签: java android escaping

我有一个方法,从raw中的文件中读取一个随机笑话,然后显示它,但我无法弄清楚,如何设置一个新行。 该行中的所有笑话都是1行,但显然它们不止一个,所以我使用\n。例如,该行说"Hi! \n Hi to you too"当我使用我的代码而不是:

Hi!
Hi to you too

它给了我

Hi! \n Hi to you too

我试图追加它,并且这不起作用代码下面也试图在数组中输入笑话,然后从该数组显示它,也没有工作...任何想法将非常感激。 ..

InputStreamReader inputStream = new InputStreamReader
         (getResources().openRawResource(R.raw.vicove));
         BufferedReader br = new BufferedReader(inputStream);
         int numLines = 1;
         Random r = new Random();
         int desiredLine = r.nextInt(numLines);

         String theLine="";
         int lineCtr = 0;
        try {
    while ((theLine = br.readLine()) != null)   {
    if (lineCtr == desiredLine) {
    break;
    }
        lineCtr++;
        }
        } catch (IOException e) {

            e.printStackTrace();
            }

     textGenerateNumber.setText(String.valueOf(theLine));

我使用相同的代码来读取没有转义字符的文件,它完美地运行... 附:不仅\n不起作用,而且\"也可能不起作用。

2 个答案:

答案 0 :(得分:1)

这是因为你有

\n 

在文件中,这是2个普通字符,而不是换行符。

您可以使用Apache Commons库来浏览这些序列:

Apache Commons中的

StringEscapeUtils.unescapeJava

答案 1 :(得分:1)

试试这个:

String source = "<br>"+String.valueOf(theLine);  
textGenerateNumber.append(Html.fromHtml(source));