Broken Text:在android中读取较大尺寸的文本

时间:2014-01-07 07:49:09

标签: java android utf-8 filestream

当Android应用程序正在读取大尺寸文本文件时,我有一个关于破碎文本的问题。

我正在尝试构建应用程序以读取大型文本文件(大约10mb)

当我正在读取文件并使用System.println检查文本文件的内容时

然而,当我显示消息但是打印声明

它会显示诸如..

等损坏的文字
  

T h e P r o j e c t G u

当我读小尺寸的rtf时发现,但我使用了文本文件,然后我提出了问题

我使用的代码如..

          String UTF8 = "utf8"; 
            int BUFFER_SIZE = 8192;
            File gone = new File(path); 
             FileInputStream inputStream = new FileInputStream(gone);  
           // FileInputStream inputStream  = openFileInput(gone); 
            if ( inputStream != null ) {

                InputStreamReader inputStreamReader = new InputStreamReader(inputStream,UTF8);
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader, BUFFER_SIZE);
                String receiveString = "";
                StringBuilder stringBuilder = new StringBuilder();

                while ( (receiveString = bufferedReader.readLine()) != null ) {
                    stringBuilder.append(receiveString);
                }

                inputStream.close();

                ret = stringBuilder.toString();
                System.out.println(ret);
            }

我在想它可能是编码问题。因此我添加了utf8选项。

然而,它仍然不起作用..

有谁知道破碎文字的解决方案?

更新: 我想,我解决了问题。 我从窗口文本编辑器创建新的文本文件,然后复制和粘贴内容。 现在,它正在正确读取文件

2 个答案:

答案 0 :(得分:0)

对于给定文件可能是错误的编码,可能是文件不包含文本,可能是控制台不支持该字符。

除了代码太长,这是一个单行解决方案

String s  = new String(Files.readAllBytes(Paths.get(file)), "UTF-8");

答案 1 :(得分:0)

该文件可能包含图片或不支持的格式,在这种情况下,它会显示如下。