如何将文本文件存储到 2d int 数组中
How to store text file into 2d int array
我有两个格式如下的文件,其中第一个 int 需要存储在某个地方,第二行及以下将存储到一个二维数组中。第一个数字,在本例中为 4,表示大小为 int [][] array = new int [2*4][4];然而,4 不应该是数组的一部分,应该被丢弃。文件路径将通过命令行提供给程序。我还没有找到任何可以执行此功能的罐子。
4
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7
我已经使用 java 7 API 将文件读入列表。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class SOTest {
public static void main(String[] args) throws IOException {
int[][] arr = null;
String path = args[0];
List<String> lines = Files.readAllLines(Paths.get(path));
for (int i=0; i<lines.size() ; i++) {
String[] aStr = lines.get(i).split("\s+");
if(aStr.length==1) {
int size = Integer.valueOf(aStr[0]);
System.out.println("Size of array "+size);
arr = new int[size][size];
populateArr(arr, lines.subList(i+1, i+size+1));
print(arr);
i = i+size;
}
}
}
public static void populateArr(int[][] arr, List<String> list) {
for(int i=0; i<list.size(); i++) {
String[] values = list.get(i).split("\s+");
for(int j=0; j<values.length; j++) {
arr[i][j] = Integer.parseInt(values[j]);
}
}
}
private static void print(int[][] arr) {
System.out.println("***********PRINT***********");
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
输入(文件位置)
文件内容如下
4
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7
3
1 2 3
4 5 6
7 8 9
java 程序的输出
Size of array 4
***********PRINT***********
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7
Size of array 3
***********PRINT***********
1 2 3
4 5 6
7 8 9
我有两个格式如下的文件,其中第一个 int 需要存储在某个地方,第二行及以下将存储到一个二维数组中。第一个数字,在本例中为 4,表示大小为 int [][] array = new int [2*4][4];然而,4 不应该是数组的一部分,应该被丢弃。文件路径将通过命令行提供给程序。我还没有找到任何可以执行此功能的罐子。
4
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7
我已经使用 java 7 API 将文件读入列表。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class SOTest {
public static void main(String[] args) throws IOException {
int[][] arr = null;
String path = args[0];
List<String> lines = Files.readAllLines(Paths.get(path));
for (int i=0; i<lines.size() ; i++) {
String[] aStr = lines.get(i).split("\s+");
if(aStr.length==1) {
int size = Integer.valueOf(aStr[0]);
System.out.println("Size of array "+size);
arr = new int[size][size];
populateArr(arr, lines.subList(i+1, i+size+1));
print(arr);
i = i+size;
}
}
}
public static void populateArr(int[][] arr, List<String> list) {
for(int i=0; i<list.size(); i++) {
String[] values = list.get(i).split("\s+");
for(int j=0; j<values.length; j++) {
arr[i][j] = Integer.parseInt(values[j]);
}
}
}
private static void print(int[][] arr) {
System.out.println("***********PRINT***********");
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
输入(文件位置) 文件内容如下
4
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7
3
1 2 3
4 5 6
7 8 9
java 程序的输出
Size of array 4
***********PRINT***********
7 5 6 4
5 4 6 7
4 5 6 7
4 5 6 7
Size of array 3
***********PRINT***********
1 2 3
4 5 6
7 8 9