gpt4 book ai didi

JAVA:读取导入的 txt 时出现 ArrayIndexOutOFBoundException

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:08 27 4
gpt4 key购买 nike

我是一个初学者,我有一个txt文件,用户将其导入到java中,我将逐行读取txt文件,然后在每一行上设置变量基并将它们添加到当前记录中

    public void importTXT() {
JFileChooser fc = new JFileChooser();
fc.setAcceptAllFileFilterUsed(false);
fc.setMultiSelectionEnabled(false);
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"TEXT FILES", "txt", "text");
fc.setFileFilter(filter);
int returnVal = fc.showOpenDialog(CollectionFrame.this);
String[] numstrs = null;
if (returnVal == JFileChooser.APPROVE_OPTION) {
File importedFile = fc.getSelectedFile();

try {
Scanner sc = new Scanner(importedFile);
while (sc.hasNextLine()) {
numstrs = sc.nextLine().split("\\s+"); // split by white
// space
}
} catch (IOException e) {

}
// add new collection
Collection newCollection = new Collection(numstrs[0]);
allRecord.addCollection(newCollection);

// add art consignment information
String consignmentName = numstrs[3];
String description = numstrs[4];

我在倒数第二行收到一个ArrayIndexOutOfBoundsException

字符串寄售名称 = numstrs[3];

文本文件的内容如下:

Richman’s Estate Collection
5
ART
Water Lilies
A superb piece in great condition

谁能告诉我出了什么问题吗?

最佳答案

编辑:您当前正在读取所有行并每次替换 numstrs
的值因此,当您离开循环时,您只会获得其中最后一行的值。
我想你想保存所有行 - 见下文。
结束编辑

你应该使用数组列表。

像这样:

ArrayList<String[]> numstrsList = new ArrayList<String[]>();
if (returnVal == JFileChooser.APPROVE_OPTION) {
File importedFile = fc.getSelectedFile();

try {
Scanner sc = new Scanner(importedFile);
while (sc.hasNextLine()) {
numstrsList.add(sc.nextLine().split("\\s+")); // split by white
// space
}
} catch (IOException e) {

}
}

您可以使用以下方法捕获数组列表的值:

for(int i=0:i<numstrsList.size();i++){
String[] oneLineStrArray = numstrsList.get(index)
//do something
}

您应该发布文本数据,否则我们无法帮助您解决 OutOfBounds 错误。另外,我想知道如何实例化一个集合。

关于JAVA:读取导入的 txt 时出现 ArrayIndexOutOFBoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26547813/

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