【发布时间】:2021-12-31 21:34:26
【问题描述】:
我有一个包含文本的 .txt 文件,我想将它的一部分保存在 String 中,一部分保存在 String 数组中,最后一部分保存在 2D int 数组中,我面临两个问题:
- 如何在事先不知道大小的情况下读取和保存两个数组?
- 二维数组未正确读取/保存
这里是文本文件供参考:
This is the sentence to be read.
This
is
a
String
array.
90 47 110 95 95
101 87
54 0 38 12
这是我的方法的一部分,它应该读取和保存三种数据类型:
BufferedReader br = new BufferedReader(new FileReader(fileName));
sentence = br.readLine();
stringArr = new String[5]; //how to initialize without set number of elements?
for(int i = 0; i<stringArr.length; i++){
stringArr[i] = br.readLine();
}
int2DArr = new int[3][5]; //how to initialize with any amount of rows and columns?
for(int i = 0; i<int2DArr.length; i++){
for(int j = 0; j<int2DArr[i].length; j++){
int2DArr[i][j] = br.read();
//how to read the space after each int ?
}
}
我将如何通过读取文本文件来“获取”数组的大小,以便在初始化两个数组时获得正确的大小?任何帮助将不胜感激!
【问题讨论】:
-
我认为您应该使用
while循环来遍历文本行。查看网络上有关如何用 Java 读取文件的许多示例。您始终可以在循环外初始化int以捕获行索引,并且可以在while内将所述变量加一。 -
@hfontanez,对,但是我怎么知道我何时到达 2d int 数组并切换数据类型?
-
这就是明确的需求有帮助的原因。我们都不知道这个文件结构。所有文件是否总是具有相同的行数和相同的数据排列?为什么一个文件用来存储混合数据类型?在我看来,它们应该存储在单独的文件中。
-
此外,您始终可以将数字存储为字符串并在以后转换为数字。
-
@hfontanez 文件结构必须是String,后跟String数组,后跟2D int数组,如上图。这些文件将始终具有相同的数据排列,只是数组大小不同
标签: java file-io bufferedreader