破碎的文本:在安卓中阅读更大尺寸的文本



我有一个关于安卓应用程序读取大尺寸文本文件时文本损坏的问题。

我正在尝试构建应用程序来读取大尺寸文本文件(约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 选项。

但是,它仍然不起作用..

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

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

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

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

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

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

最新更新