我试图导入存储在.txt文件中的值,并使用数组将其存储在类中。但我做不到--我得到了ArrayIndexoutofboundException1错误。你能帮我一下吗。
我的文本文件是这样的
见所有文本
91220 Figueroa &博览会213749-9302
91220 Figueroa &博览会213-749-9302
91220 Figueroa &博览会213-749-9302
91220 Figueroa &博览会213-749-9302
我有一个名为prereqclass的类,这是我的代码
if ( context.getAttribute("Preqattr") == null )
{
ArrayList<prereqclass> prereqcl = new ArrayList<prereqclass>();
String file = this.getServletContext().getRealPath("/") + "download.txt";
try{
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
if (line.trim().startsWith("#")) {
// do nothing
System.out.println("Entering # loop");
}else{
System.out.println("Entering the lines");
String[] tokens = line.split("/t");
prereqcl.add(new prereqclass(tokens[0].trim(),tokens[1].trim(),tokens[2].trim() ) );
System.out.println("Attempt Success");
for (String token : tokens)
System.out.println("\t" + token.replace('"', ' ').trim() );
System.out.println("-------------------");
}
}
br.close();
context.setAttribute("Preqattr", prereqcl);
}
catch(IOException e){
e.printStackTrace();
}
}这是错误java.lang.ArrayIndexOutOfBoundsException: 1 at prereq.prereqserv.init(prereqserv.java:64)
发布于 2014-10-15 02:56:26
这一行:
String[] tokens = line.split("/t");大概是试图拆分一个以制表符分隔的行,但您使用的是正斜杠而不是反斜杠。它应该是:
String[] tokens = line.split("\t");在尝试索引tokens之前,您应该检查它的长度,以帮助捕获这些类型的错误。即使进行了上述更改,如果您遇到一条由于任何原因没有被制表符分隔的行,您也会得到相同的异常。我建议使用长度检查来包装访问tokens数组的代码:
if (tokens.length >= 3) {
prereqcl.add(new prereqclass(tokens[0].trim(),tokens[1].trim(),tokens[2].trim() ) );
}
else {
System.out.println("Only found " + tokens.length + " tokens.");
}https://stackoverflow.com/questions/26373620
复制相似问题