Java 使两个整数成对,文件中每隔一个整数

Java 使两个整数成对,文件中每隔一个整数,java,int,Java,Int,我有一个代码,它用0-255之间的数字填充两个int[]数组。 我需要使读取文件成为可能,并将其他整数分组在一起,例如,我的文件是0 12 85 45 20 14 255 145,我需要将0-12、85-45、20-14、255-145成对。 你有什么建议吗 try { DataInputStream dis = new DataInputStream(new FileInputStream(new File("input.txt"))); DataOutputStream do

我有一个代码,它用0-255之间的数字填充两个int[]数组。 我需要使读取文件成为可能,并将其他整数分组在一起,例如,我的文件是0 12 85 45 20 14 255 145,我需要将0-12、85-45、20-14、255-145成对。 你有什么建议吗

try {
    DataInputStream dis = new DataInputStream(new FileInputStream(new File("input.txt")));
    DataOutputStream dos = new DataOutputStream(new FileOutputStream(new File("output.txt")));
    int[] i = new int[256];
    int[] j = new int[256];
    for (int k = 0; k < 256; k++) {
        i[k] = k;
        for (int l = 0; l < 256; l++) {
            j[l] = l;
            System.out.println(k + " " + l);
        }
    }
    //the int pairing should be here
    //but I have no idea how to pair the integers from the input.txt file
}
试试看{
DataInputStream dis=新的DataInputStream(新文件InputStream(新文件(“input.txt”)));
DataOutputStream dos=新的DataOutputStream(新的FileOutputStream(新文件(“output.txt”));
int[]i=新的int[256];
int[]j=新的int[256];
对于(int k=0;k<256;k++){
i[k]=k;
对于(int l=0;l<256;l++){
j[l]=l;
系统输出打印项次(k+“”+l);
}
}
//int配对应该在这里
//但是我不知道如何将input.txt文件中的整数配对
}

流api建议了非常简洁的解决方案:

String string = Files.readString(Paths.get(PATH_TO_FILE));  // get file content
String[] arr = string.split(" ");

List<String> pairs = IntStream.iterate(0, n -> n < arr.length, n -> n + 2)
        .mapToObj(i -> arr[i] + "-" + arr[i + 1])
        .collect(Collectors.toList());

System.out.println(pairs);    // [0-12, 85-45, 20-14, 255-145]
String String=Files.readString(PATH.get(PATH_TO_FILE));//获取文件内容
String[]arr=String.split(“”);
List pairs=IntStream.iterate(0,n->nn+2)
.mapToObj(i->arr[i]+“-”+arr[i+1])
.collect(Collectors.toList());
系统输出打印项数(对);//[0-12, 85-45, 20-14, 255-145]

完全失去循环,不是迭代0-255中的每个数字,而是迭代文件中的数字。如果可以的话,我也会重新考虑
DataInputStream
,因为该类上的
#readInt
不支持空格(但是使用
Scanner
Scanner#readInt
,可以得到下一个数字,而不考虑空格)。否则,总是会出现
#readLine
String#split
,这些应该会对您有所帮助