2013-12-15 36 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));