我正在尝试读入一个文件,将其制作成阵列并打印出来。
我不确定这段代码我做错了什么。我一直试图找到一个解决方案,但我能找到的所有解决方案都比我们应该使用的更先进...我使用相同的方法编写了一个以前的程序,但是作为一个Double数组。我似乎无法使它适用于String?
我继续得到[Ljava.lang.String; @ 3d4eac6当我运行它。
我只想打印boysNames。 boyNames.txt只是文本文件中200个名字的列表。
有人请帮帮我,或者告诉我这是否可能?
到目前为止这是我的代码
public static void main(String[] args) throws FileNotFoundException {
String[] boyNames = loadArray("boyNames.txt");
System.out.println(boyNames);
}
public static String[] loadArray(String filename) throws FileNotFoundException{
//create new array
Scanner inputFile = new Scanner(new File (filename));
int count = 0;
//read from input file (open file)
while (inputFile.hasNextLine()) {
inputFile.nextLine();
count++;
}
//close the file
inputFile.close();
String[] array = new String[count];
//reopen the file for input
inputFile = new Scanner(new File (filename));
for (int i = 0; i < count; i++){
array[i] = inputFile.nextLine();
}
//close the file again
inputFile.close();
return array;
}
`
答案 0 :(得分:0)
Java数组不会覆盖Object.toString()
,因此当您尝试使用[Ljava.lang.String;@3d4eac6
将其打印出来时,会得到通用的System.out.println()
(或类似代码)。而是遍历数组并打印每个值。
for (String boyName : boyNames) {
System.out.println(boyName);
}
或者,您可以使用Arrays.toString()
:
System.out.println(Arrays.toString(boyNames));
另一种选择是使用String.join()
(Java 8新增)
System.out.println(String.join("\n", boyNames));