我正在关注一些教程视频并学习如何使用 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();
}
}
}
教师的输出不显示方形符号。当我将符号复制并粘贴到该网站时,它也没有显示,所以我不得不截取它的屏幕截图。
你有一个数组:
char[] array = new char[100];
每当您创建具有特定大小的数组时,都会使用其类型的默认值对其进行初始化。因此,您的数组中有默认值,并且
char
的默认值是 '\u0000' (空字符)。
之后,你就有了一个代码:
reader.read(array);
which reads输入到提供的数组中(即读取输入并将其存储在数组中)。因此,它从头开始(0 索引)用文件中的内容填充数组,对于剩余的槽,您的默认值保留在那里。