@Test
public void test() throws IOException {
File file = new File("E:\\map.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
//借助字符缓冲流,其中含有方法readline(),可以方便的获取二维数组的行列数据
//其他流读取文件只有read(),不便于处理
List<String> list = new ArrayList<>();
String len ;
while((len=br.readLine())!=null){
list.add(len);
System.out.println(len);
}
br.close(); //关闭流资源
int column = list.get(0).split("\t").length; //由list中任意一个string拆分后的数组个数作为列数
int row= list.size(); //直接使用list的长度作为行数
Integer[][] arr = new Integer[row][column];
for (int i =0; i<row; i++){
for (int j= 0; j< column;j++){
arr[i][j]= Integer.valueOf(list.get(i).split("\t")[j]);
}
}
for (Integer[] oneDimension :arr){ //打印稀疏数组
for (int i:oneDimension){
System.out.print(i+"\t");
}
System.out.println();
}
System.out.println("**************************");
int[][] arr1 = new int[arr[0][0]][arr[0][1]]; //将稀疏数组还原
for (int i =1;i<row;i++){
arr1[arr[i][0]][arr[i][1]]=arr[i][2];
}
for (int[] getRow:arr1){ //打印原数组
for (int number:getRow){
System.out.print(number+"\t");
}
System.out.println();
}
}