我试图将文本文件中的每一行拆分为数组中的单元格。我可以使用 split 函数来完成此操作,而不计算行数来创建数组吗?
我正在使用Scanner
用于从扫描仪读取文件。该文件的每一行包含以下格式:number_number
我要保存number_number
作为字符串放入数组的单元格中。
但是,我不知道文本文件中可以有多少行,以便设置数组大小。我不t want to use
LinkedList`,请假设不会有很多行。
是否可以从文件中读取并将每一行保存到数组的单元格中?
将方法从 Scanner 更改为其他方法没有问题。
当前代码中的问题是它仅保存文件中的第一行。
public String[] readFromFileToStringArray(String s) {
Scanner scanner = null;
try {
scanner = new Scanner(new File(s));
} catch (IOException e) {
e.printStackTrace();
}
String[] fileText = null;
if (scanner != null)
while (scanner.hasNext())
fileText = scanner.nextLine().split("\n");
return fileText;
}
最佳答案
当使用 scanner.nextLine()
时,您会读取文本直到 \n
字符,因此您所做的分割是毫无意义的,因为行字符串不会有这个特点。
您可以读取所有文件,然后将其拆分:
public String[] readFromFileToStringArray(String s) {
String text = new String(Files.readAllBytes(Paths.get(s)),
StandardCharsets.UTF_8);
return text.split("\n");
}
但实际上正如其他回答所说,简单地使用 List
可能会更好
关于java - 从文本文件中逐行读取并将每行保存到数组中的不同单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56243551/