【问题标题】:Broken Text : reading larger size text in androidBroken Text:在android中读取更大尺寸的文本
【发布时间】:2014-01-07 07:49:08
【问题描述】:

我有一个关于 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 选项。

但是还是不行..

有没有人知道文本损坏的解决方案?

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

【问题讨论】:

  • 你确定是 UTF8 吗?检查文件的实际编码,例如与编辑。

标签: java android utf-8 filestream


【解决方案1】:

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

除了代码太长,这里有一个解决方案

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 2015-10-20
      • 1970-01-01
      • 2019-12-30
      • 2012-10-26
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多