Java 打印从文本文件创建的数组

Java 打印从文本文件创建的数组,java,arrays,string,text-files,Java,Arrays,String,Text Files,正在尝试使用文本文件中的行打印数组 文本文件: Queen Greatest_Hits_I Rock 2011 UNI 17 58.19 Madonna Music Pop 2000 Mavericks_Records 10 44.40 Miles_Davies King_of_Blue Jazz 1959 Columbia_Records 6 45.44 Charles_Bradley Changes Soul 2016 Daptone_Records 11 40.44 David_B

正在尝试使用文本文件中的行打印数组

文本文件:

Queen Greatest_Hits_I Rock 2011 UNI 17 58.19

Madonna Music Pop 2000 Mavericks_Records 10 44.40

Miles_Davies King_of_Blue Jazz 1959 Columbia_Records 6 45.44

Charles_Bradley Changes Soul 2016 Daptone_Records 11 40.44

David_Bowie Blackstar Rock 2016 ISO 7 41.13

Queen Queen_II

Prince Purple_Rain
代码:

代码输出:

[Queen Greatest_Hits_I Rock 2011 UNI 17 58.19, Madonna Music Pop 2000 Mavericks_Records 10 44.40, Miles_Davies King_of_Blue Jazz 1959 Columbia_Records 6 45.44, Charles_Bradley Changes Soul 2016 Daptone_Records 11 40.44, David_Bowie Blackstar Rock 2016 ISO 7 41.13, Queen Queen_II, Prince Purple_Rain]
我想要的输出:

Queen Greatest_Hits_I Rock 2011 UNI 17 58.19
Madonna Music Pop 2000 Mavericks_Records 10 44.40
Miles_Davies King_of_Blue Jazz 1959 Columbia_Records 6 45.44
Charles_Bradley Changes Soul 2016 Daptone_Records 11 40.44
David_Bowie Blackstar Rock 2016 ISO 7 41.13
Queen Queen_II
Prince Purple_Rain

我做错了什么?

而不是
System.out.println(Arrays.toString(l))尝试以下操作:

for (String line : l) {
    System.out.println(line);
}
或无回路:

System.out.println(StringUtils.join(l, "\n"));
Java 8:

Arrays.stream(l).forEach(System.out::println);

你没有做错什么。问题是
Arrays.toString()
以您看到的格式返回数组的字符串表示形式

如果不需要数组,只需在读取行时输出它们

如果需要在数组中写入行(检查其内容是否正确(?),并且需要在新行中输出每个数组元素,只需更改打印数组的方式即可。不要使用
Arrays.toString()
方法,而是使用类似以下的方法:

public String toString(String[] array) {
    for (String line : array) {
        System.out.println(line);
    }
}

对算法的改进是扫描文件一次,将其存储在Arraylist中,如果仍然需要数组,则在此Arraylist上应用toArray()方法。

对于Java 8,可以使用流API

 Stream.of(l).forEach(System.out::println);

具有所需输出的简化代码:

       public static void main(String[] args)  throws FileNotFoundException{

    Scanner read= new Scanner(new File("C:\\CD.txt"));
        while(read.hasNext()){

            System.out.println(read.nextLine());
        }
}
此外,如果您想将文件存储在某种集合中,可以使用ArrayList进行存储,并且仍然可以获得所需的输出。以下为参考资料:

public static void main(String[] args)  throws FileNotFoundException{

ArrayList<String> arr = new ArrayList<String>();
Scanner read= new Scanner(new File("C:\\CD.txt"));
while(read.hasNext()){

    arr.add(read.nextLine());

}

for(String str : arr)
{
    System.out.println(str);
}}
publicstaticvoidmain(字符串[]args)抛出FileNotFoundException{
ArrayList arr=新的ArrayList();
扫描仪读取=新扫描仪(新文件(“C:\\CD.txt”);
while(read.hasNext()){
arr.add(read.nextLine());
}
用于(字符串str:arr)
{
系统输出打印项次(str);
}}

只输出行,而不是将每行添加到数组中。
public static void main(String[] args)  throws FileNotFoundException{

ArrayList<String> arr = new ArrayList<String>();
Scanner read= new Scanner(new File("C:\\CD.txt"));
while(read.hasNext()){

    arr.add(read.nextLine());

}

for(String str : arr)
{
    System.out.println(str);
}}