2013-12-15 37 views
0

我必须从text.txt文件读取数据,但我有奇怪的错误,我的输出是:[Ljava.lang.String;@5f0a94c5Java ArrayList要数组,数组要字符串错误

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

您需要使用:

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

在你的代码,Arrays.toString(dataArray);什么也不做,你不要”不要对其返回的价值做任何事情。

顺便说一句,作为@ZouZou指出的那样,你也可以打印ArrayList直接:

System.out.println(data); 
+0

我可以用String ARR = Arrays.toString(dataArray中)); ? – George

+0

是的。你可以使用它并打印'arr'。 – BobTheBuilder

+2

@ user3104545为什么不直接打印清单?'System.out.println(data);' –

1

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

代替尝试使用System.out.println(Arrays.toString(dataArray));