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 - 无法访问服务项目中的 Cordapp 流

ios - 缺少 Swift 3 数组 indexOf 函数

arrays - 二维 ColdFusion 结构

java - 如何仅为 Controller 配置的路径配置 Spring 过滤器

java - Jersey JAXRS 过滤器,在访问资源(Web 服务)之前提供未编码的实体

c - 在c中为二维数组赋值

c - 应用程序代码如何与内核代码通信?

linux - 如果文件存在,输出在 shell 中重定向到另一个文件

shell - 在 linux bourne shell : How to count the occurrences of a specific word in a file

java - 有人可以告诉我如何将此数组传递到我的 main 方法中以便打印吗?