首页 > 解决方案 > 将文件字符传递给控制台

问题描述

我正在尝试在控制台上显示一个 txt 文件。Txt 文件包含这样的形状:

############################
                           #
                           #
                           #
                          #
                          #
                          #
                          #
                        ##
                       #
                     ##
                   ##
                ###
          ######
##############

使用这个简单的代码,我可以在 char 数组中逐行传递字符。

BufferedReader br = Files.newBufferedReader(Path.of(path));

        char[] cbuf = new char[4];
        int count = 0;
        int j = 0;
        while(br.read(cbuf) != -1)
        {
            for(int i = 0; i < cbuf.length; i++) {
                count++;
                m_image[j][count] = cbuf[i];
                if(cbuf[i] == '\r') {
                    j++;
                    count = 0;
                }
            }
        }
for(var chars : ri.m_image) {
            for (char ch : chars) {
                System.out.printf("%s", ch);
                //System.out.flush();
            }
        }

当我调试代码时,我可以看到数组已按我的意愿填充。但是当我printf如上所述使用时,我只能看到控制台中的最后一行。println形状不正确,但我可以看到每个字符。这里可能有什么问题?

注意:我没有使用 BufferedReader.readLine() 来尝试这种方法。

标签: filefile-ioconsolecharacterbufferedreader

解决方案


推荐阅读