2012-12-05 49 views
4

我想從文本文件中讀取整數並將它們存儲到數組中。該文本文件讀取:從txt文件讀取整數並存儲到數組

4 
-9 
-5 
4 
8 
25 
10 
0 
-1 
4 
3 
-2 
-1 
10 
8 
5 
8 

然而,當我跑我的代碼,我得到在控制檯窗口[[email protected] ...

public static void main(String[] args) throws IOException 
    { 
     FileReader file = new FileReader("Integers.txt"); 
     int[] integers = new int [100]; 
     int i=0; 
     try { 
      Scanner input = new Scanner(file); 
      while(input.hasNext()) 
      { 
       integers[i] = input.nextInt(); 
       i++; 
      } 
      input.close(); 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
     System.out.println(integers); 
    } 

回答

5

INT實際值要打印出數組,而不是實際的數組項的虛擬內存地址:

您可打印出實際的陣列項目,一個接一個,像這樣的:

// This construct is called a for-each loop 
for(int item: integers) { 
    System.out.println(item); 
} 

@akuhn正確地指出,Java有一個內置的幫手是:

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

請注意,您需要添加:

import java.util.Arrays 

在您的導入中爲此工作。

+0

太謝謝你了! – user1877918

+0

務必接受最有幫助的答案! – ranman

+0

我不明白這是如何投票最少的。 – dreamcrash

2

,而不是這個

System.out.println(integers); 

試試這個

System.out.println(integers[0] + " : " + integers[1]); 

你需要pr在integers[]陣列不是數組本身

0

如果使用int數組不是限制,那麼我會建議使用List。您可以使用它像這樣:

List<Integer> integers = new ArrayList<Integer>(); 
Scanner input = new Scanner(file); 
while(input.hasNext()){ 
    integers.add(scanner.nextInt()); 
} 
System.out.println(integers); 

輸出:[1,2,-1,23]

3

不幸的是,Java的設計者錯過添加適當的字符串表示的數組。

而是使用

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

您需要import java.util.Arrays;,使這項工作。

0

只要您將任何對象傳遞給System.out.println(),它就會打印該對象的toString()。如果它未被覆蓋,它將打印該對象的內存地址。

System.out.println(integers); 

正在嘗試打印整數數組的toString()表示,該數組只是此數組的JVM地址。

要打印的實際數字數組中,您可能需要通過數組迭代或數組轉換爲java.util.ArrayList(其中已實施toString()方法。)

0

這會幫助你從讀整數文件並將其存儲在數組中

import java.util.Scanner;

import java.io.文件;

import java.util.ArrayList;

公共類filetoarray {

public static ArrayList<Integer> read(File f) 
{ 
    ArrayList<Integer> array=new ArrayList<Integer>(); 
    try 
    { 

    Scanner sc=new Scanner(f); 
    while(sc.hasNextLine()) 
    { 
     array.add(sc.nextLine()); 
    } 

    } 
    catch(Exception e) 
    { 
     System.out.printf("ERROR : %s", e); 
    } 
    return array; 
} 
public static void main(String[] args) { 
    File file1=new File("file1.txt");//your file path here 
    ArrayList<Integer> array1; 
    array1=read(file1); 
    System.out.println(array1); 

} 

}