为什么我的阅读器输出方形符号?

问题描述 投票:0回答:1

我正在关注一些教程视频并学习如何使用 java 读取文件。在此示例中,讲师创建一个大小为 100 的 char 数组,然后使用 FileReader 类读取文本文件并将字符放入 char 数组中,然后 System.out 该数组到控制台。我的代码与讲师相同,但我的输出包含方形符号来填充 100 个字符数组,而讲师输出正确显示字符数组。

这是代码片段和输出

import java.io.*;

public class MSReader
{

    public static void main(String[] args)
    {
        // the character stream lasses when working
        // with char or strings [ reader, writer]
        
        char[] array = new char[100];
        
        try 
        {
            Reader reader = new FileReader(
                "C:\\Users\\ricky\\OneDrive\\Desktop - Lenovo Laptop\\test\\InputStreamExample.txt");
            // check if reader is ready
            System.out.println("Ready: " + reader.ready());
            // reading the characters
            reader.read(array);
            System.out.println("Data in the stream: ");
            System.out.println(array);
            
            // close stream
            reader.close();
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

我得到的输出: output

教师的输出不显示方形符号。当我将符号复制并粘贴到该网站时,它也没有显示,所以我不得不截取它的屏幕截图。

java arrays char filereader
1个回答
1
投票

你有一个数组:

char[] array = new char[100];

每当您创建具有特定大小的数组时,都会使用其类型的默认值对其进行初始化。因此,您的数组中有默认值,并且

char
的默认值是 '\u0000' (空字符)。

之后,你就有了一个代码:

reader.read(array);

which reads输入到提供的数组中(即读取输入并将其存储在数组中)。因此,它从头开始(0 索引)用文件中的内容填充数组,对于剩余的槽,您的默认值保留在那里。

© www.soinside.com 2019 - 2024. All rights reserved.