java - 如何通过 Unix 输入重定向将文件作为数组输入到我的 java 程序中?

标签 java arrays unix input

我是 Java 初学者,需要一些帮助来解决这个问题。首先让我向您展示我的实际程序。

import java.util.Scanner;
import java.util.Arrays;

public class IntArraySort {


        public static void main(String[] args) {

                Scanner in = new Scanner(System.in);

                System.out.println("Array-Size: ");
                int num = in.nextInt();
                int[] arr = new int[num];

                for(int i = 0; i < arr.length; i++){
                        System.out.printf("%2d-tes element: ", i+1);
                        arr[i] = in.nextInt();
                }

                System.out.printf("%nOutput before sort: ");
                System.out.println(Arrays.toString(arr));

                int minIndex, tmp;
                int n = arr.length;

                for(int i = 00; i < n - 1; i++) {
                        minIndex = i;
                        for(int j = i + 1; j < n; j++)
                                if (arr[j] < arr[minIndex])
                                        minIndex = j;
                        if (minIndex != i) {
                                tmp = arr[i];
                                arr[i] = arr[minIndex];
                                arr[minIndex] = tmp;
                        }
                        System.out.printf("%n%2d-ter Run: ", i+1);
                        System.out.println(Arrays.toString(arr));
                }
         }

}

这是一个程序,当您通过键盘输入扫描数组的大小和数字时,对 Int 数组从小到大进行排序。但我想从 .dat 文件扫描我的数组。我将其命名为 sort.dat,它看起来像这样:

0
20
12
8
16
6
10
14
2
18
4
21
4
-1
-3

我需要在 Java 程序中进行哪些更改才能在 Unix 上通过输入重定向 (IntArraySort.java < sort.dat) 扫描 sort.dat 文件?

最佳答案

您不需要更改很多东西,只需读取大小为 args.length 的输入数据并将它们存储在整数数组中即可。

例如:

ArrayList<Integer> inpudData = new ArrayList<Integer>();

if (args.length < 1) {
System.out.println("Proper Usage is: java IntArraySort < sort.dat");
System.exit(0);
} else {
    for (int i = 0; i < args.length; i++)
    inpudData.add(Integer.parseInt(args[i]));
}

现在你只需调用 java IntArraySort < sort.dat ,将 sort.dat 文件的内容重定向到你正在调用的 java 程序,而不是让用户手动键入要一一排序的数字按 [ENTER]。

关于java - 如何通过 Unix 输入重定向将文件作为数组输入到我的 java 程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21170437/

相关文章:

java - 无法在 Java 中正确拆分字符串

java - 由于无法识别选项 : --module-path,在 Netbeans 11 中运行示例 JavaFX Maven 时出错

c# - 在 C# 中通过相同的结果在 Android 中将 Long 转换为 Byte []

javascript - array.prototype.includes 与 set.prototype.has 的时间复杂度

linux - issetugid 的目的?

java - 如何在 Java 中创建公共(public)整数变量?

java - 为什么 JFrame 不居中?

Javascript算法实践去除数组中的负数

linux - 在现有环境中使用的 Linux 发行版

linux - 在 vim 中折叠代码让我感到困惑