如何从扫描仪读取文本文件并将其转换为Int Array Java

时间:2019-04-12 03:04:55

标签: java arrays

我一直试图创建一个Java程序来读取包含100个整数的文件“ 100.txt”,然后将它们存储到一个int数组中。稍后,我将让它打印数组并对数组中的数字进行排序,但是我想获取它以读取文本文件并将数字存储在数组中,然后首先将其转换为int数组。我该怎么办?

我尝试了一些不同的事情。我知道如何从扫描仪读取文本文件并创建数组,但是我从未更改过类型(在这种情况下,将String更改为int)。如果你们中的任何一个可以帮助我,并给我一些如何实现的建议,那将不胜感激。

try
{
    File file = new File("100.txt");
    Scanner input = new Scanner(file);

    while (input.hasNextLine())
    {
        String line = input.nextLine();
        System.out.println(line);
    }
    input.close();  
    }
    catch (Exception ex)
        {
        ex.printStackTrace();
    }
    int[] array = new int[file.length];
    int i, n = array.length;
    for (i = 0; i < n; i++)
    {    array[i] = Integer.parseInt(file[i]);
    }
}

2 个答案:

答案 0 :(得分:1)

假设您知道文件的行数,则可以使用此代码。另外请注意,将其作为BufferedReader读取并将其传递给扫描仪会更有效。

我试图使它尽可能简单,但是如果您有任何疑问,请随时提出。

public int[] readFile(String filePath)throws Exception
    {
        int[] array = new int[100];
        Scanner sc = new Scanner(new BufferedReader(new FileReader(new File(filePath))));
        for(int i=0;sc.hasNextLine();i++) 
        {
        array[i]=Integer.parseInt(sc.nextLine());
        }
        return array;
    }

答案 1 :(得分:0)

尝试

public Integer[] ReadFromFile(String fileName) {
        List listInt = new LinkedList<Integer>();
        try {
            Scanner input = new Scanner(new File(fileName));

            while (input.hasNextLine()) {
                String value = input.nextLine();
                listInt.add(Integer.parseInt(value));
                System.out.println(value);
            }
            input.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return (Integer[]) listInt.stream().toArray();
    }