将文件复制到数组(Java)

时间:2016-09-25 04:23:28

标签: java

我正在尝试读入一个文件,将其制作成阵列并打印出来。

我不确定这段代码我做错了什么。我一直试图找到一个解决方案,但我能找到的所有解决方案都比我们应该使用的更先进...我使用相同的方法编写了一个以前的程序,但是作为一个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;
}

`

1 个答案:

答案 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));