从本地目录中读取文本文件

时间:2016-04-17 13:49:20

标签: java android

我正在尝试读取文本文件并在WebView中显示它。这是我的方法:

public static String readFileAsString(String filePath) {

        String resultString = "";
        File file = new File(filePath);

        if ( file.exists() ) {

            FileInputStream fileInputStream = null;

            try {

                fileInputStream = new FileInputStream(file);
                char currentChar;

                while (fileInputStream.available() > 0) {

                    currentChar = (char) fileInputStream.read();
                    resultString = resultString + String.valueOf(currentChar);

                }

            } catch (Exception e) {
                Log.d("", e.toString());
            } finally {
                if (fileInputStream != null)
                    try {
                        fileInputStream.close();
                    } catch (IOException ignored) {
                    }
            }
        }
        return resultString;
    }

在同一个活动中我称之为:

textView = (WebView) findViewById(R.id.webView);

textView.loadData("<p style=\"text-align: justify\">"+  readFileAsString(finalPathText), "text/html; charset=windows-1250", "utf-8");

在我的应用程序中,所有内容都会显示,但在每个特殊字符之前,它会用^写入A.示例:Žilina写为^AŽilina

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

在您的代码中,您似乎对编码是windows-1250还是utf-8感到困惑。它不可能两者兼而有之。这是导致问题的最可能原因。您必须弄清楚实际的编码并将文件视为处理。

答案 1 :(得分:0)

有必要将编码从windows-1250更改为utf-8 / utf-16,因为编码windows-1250不支持特殊字符。