簡體   English   中英

從txt文件讀取int並存儲到數組

[英]Reading ints from a txt file and storing to an array

我試圖從文本文件中讀取整數並將它們存儲到數組中。 文本文件如下:

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

然而,當我運行我的代碼時,我在控制台窗口中得到了[I@41616dd6 ...

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);
    }

您正在打印出數組的虛擬內存地址而不是實際的數組項:

您可以逐個打印出實際的數組項,如下所示:

// 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

在你的導入中為此工作。

不幸的是,Java的設計者錯過了為數組添加正確的字符串表示。

而是使用

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

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

而不是這個

System.out.println(integers);

嘗試這個

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

你需要在integers[]數組中打印實際值而不是數組本身

如果使用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]

每當您將任何對象傳遞給System.out.println()時,它都會打印該對象的toString()。 如果未覆蓋,則打印該對象的內存地址。

System.out.println(integers);

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

要打印數組中的實際數字,您需要遍歷數組或將數組轉換為java.util.ArrayList 。(實現了toString()方法。)

這應該可以幫助您從文件中讀取Integer並將其存儲在數組中

import java.util.Scanner;

import java.io.File;

import java.util.ArrayList;

public class 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);

}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM