首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入.txt文件并将其保存到类中

导入.txt文件并将其保存到类中
EN

Stack Overflow用户
提问于 2014-10-15 02:40:05
回答 1查看 33关注 0票数 0

我试图导入存储在.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 )

{

代码语言:javascript
复制
    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)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-15 02:56:26

这一行:

代码语言:javascript
复制
String[] tokens = line.split("/t");

大概是试图拆分一个以制表符分隔的行,但您使用的是正斜杠而不是反斜杠。它应该是:

代码语言:javascript
复制
String[] tokens = line.split("\t");

在尝试索引tokens之前,您应该检查它的长度,以帮助捕获这些类型的错误。即使进行了上述更改,如果您遇到一条由于任何原因没有被制表符分隔的行,您也会得到相同的异常。我建议使用长度检查来包装访问tokens数组的代码:

代码语言:javascript
复制
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.");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26373620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档