2012-12-05 51 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); 

} 

}