gpt4 book ai didi

java - 为什么 bufferedreader 对这些值返回 null?

转载 作者:行者123 更新时间:2023-12-01 19:42:12 26 4
gpt4 key购买 nike

这是我的代码,我正在使用 bufferedreader 从文件中读取。它将读取的值存储到数组中,但是当我尝试打印出数组时,它返回空值。为什么会出现这种情况?代码:

BufferedReader reader = new BufferedReader(new FileReader("valid file path here"));
int lines = 0;
while (reader.readLine() != null) {
lines++;
}

//declare and fill array
String[] coin_names = new String[lines];
String line;
int x = 0;
while ((line = reader.readLine()) != null) {
coin_names[x] = line;
x++;
}

for (int y = 0; y < lines; y++) {
System.out.println(coin_names[y]);
}

为什么它获取的所有值都返回 null?

最佳答案

问题是这样的:

while (reader.readLine() != null) {
lines++;
}

您的初始 while 循环正在消耗整个文件。更好的方法是删除它,而只使用列表来存储行:

List<String> coinNames = new ArrayList<>();
String line;
int x = 0;
while ((line = reader.readLine()) != null) {
coinNames.add(line);
x++;
}

for (String name : coinNames) {
System.out.println(name);
}

虽然您可以尝试重置读取器,但没有理由仅仅为了初始化数组就必须读取整个文件两次。使用适合作业的正确数据结构。

关于java - 为什么 bufferedreader 对这些值返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54975434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com