Java程序,用于输出数字范围内文件的内容

时间:2017-01-15 22:39:21

标签: java arrays

基本上,我的问题是,我有一个包含5000个值的文本文件。我应该弄清楚如何仅显示范围内的值(没有设置范围,但我选择了1000到1500之间。因此,应找到这些值之间的所有数字并输出到名为“User”的文本文件名称“.txt。

主要的困境是,我无法在代码中包含文本文件。我需要它作为命令行arg处理,我以前从未真正处理过这类问题。

到目前为止,这是我的代码:

import java.util.*;
import java.io.*;

public class TestProg {

    public static void main(String[] args) {
        int LowerBound = 0;
        int UpperBound = 0;

        String Name1 = null;
        String Name2 = null;

        //instantiates the array to read in the numbers from the file
        double[] FileNums = new double[5000]; 
        //instantiates the array to output the upper and lower bounded values.
        double[] OutputNums = new double[5000]; 

        Scanner scanner1 = new Scanner(System.in);

        System.out.println("This program will output the upper or lower
                            bounds of the text file.
                            Please input which lower bound you would like.");
        LowerBound = scanner1.nextInt();
        System.out.println("Now input the upper bound."); 
        UpperBound = scanner1.nextInt();

        Names(Name1, Name2);
    }

    public static String Names(String Name1, String Name2) {
        Scanner scanner2 = new Scanner(System.in);

        System.out.println("Please input your first name.");
        Name1 = scanner2.nextLine();
        System.out.println("Now input your last name.");
        Name2 = scanner2.nextLine();
    }
}

我基本上坚持如何开始。我相信它会涉及一个while循环,以告诉程序只找到范围内的值,但我不完全确定。

我还有另一个小问题,其中Name1和Name2保持恢复为null,因为我在单独的方法中输入了名称。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

使用以下代码在给定范围内打印数字(min,max,含)。

File output = new File("output.txt");
File file = new File("input.txt");
BufferedInputStream bin = new BufferedInputStream(new FileInputStream(
        file));
byte[] buffer = new byte[(int) file.length()];
bin.read(buffer);
String fileStr = new String(buffer);
String[] numbers = fileStr.split("\\s");

Scanner s = new Scanner(System.in);
System.out.println("Enter min number in range");
int rangeMin = s.nextInt();
System.out.println("Enter max number in range");
int rangeMax = s.nextInt();

for (String number : numbers) {
    if (Integer.parseInt(number) >= rangeMin
            && Integer.parseInt(number) <= rangeMax) {
        System.out.println(Integer.parseInt(number));
    }
}

bin.close();

使用space作为分隔符在input.txt中给出的输入:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...