2013-12-15 2 views
0

text.txt 파일에서 데이터를 읽어야하지만 이상한 오류가 있습니다. 내 출력은 [Ljava.lang.String;@5f0a94c5입니다. text.txt 파일의배열에 Java arraylist, 배열에 문자열 오류

내용 :

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

코드는 'Arrays.toString(dataArray); 아무것도 당신이 돈하지 않는 한,

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

당신의 코드에서 :

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

당신은 사용할 필요가 그 반환 값으로 무엇이든 할 수 없다. @ZouZou는 지적

BTW, 당신은 또한 당신의 ArrayList 직접 인쇄 할 수 있습니다

System.out.println(data); 
+0

내가 사용할 수있는 사용하려고 스트링 편곡 = 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));