0

我必须从text.txt文件中读取数据,但我有奇怪的错误,我的输出是:[Ljava.lang.String;@5f0a94c5.

文件内容text.txt

test::test.1::test.2
test2::test2.1::test2.2
test3::test3.1::test3.2

编码:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;

public class test {
        public static void main(String[] args){
            ArrayList<String> data = new ArrayList<String>();

            try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
            String CurrLine;

            while((CurrLine = br.readLine()) != null) {
                data.add(CurrLine);
            }
            String[] dataArray = new String[data.size()];
            data.toArray(dataArray);
            Arrays.toString(dataArray);
            System.out.println(dataArray);


        } catch(FileNotFoundException ex) {
            System.out.println("FNFE");
        } catch(IOException ex) {
            System.out.println("IOE");
        }
    }
}
4

2 回答 2

4

你需要使用:

System.out.println(Arrays.toString(dataArray));

在您的代码中,Arrays.toString(dataArray);什么都不做,因为您不对其返回值做任何事情。

顺便说一句,正如@ZouZou 指出的那样,您也可以ArrayList直接打印您的:

System.out.println(data);
于 2013-12-15T14:17:09.240 回答
1

您的代码:System.out.println(dataArray);将输出对象 dataArray 的哈希码值。Java 中的任何数组都不会覆盖equals()方法。因此,当您尝试打印数组对象的值时,java.lang.Object.equals()会调用方法来打印对象的哈希码。

而是尝试使用System.out.println(Arrays.toString(dataArray));

于 2013-12-15T14:19:12.843 回答