如何同时扫描多个txt文件?

时间:2016-04-04 11:24:36

标签: java

我正在学习Java EE,并且正在尝试根据我的代码中列出的选项值扫描多个文本文件。如果选择了三个选项之一,它将扫描相应的文本文件并输出一些信息。

正如你所看到的那样,我让它能够扫描一个文件而显然忽略了选项选择。我不知道如何调整我的代码以根据选择切换到不同的文件。

我想我将不得不移动一些东西,例如在实现选项选择的if语句中移动while循环,然后扫描文件中的id,这应该不是问题。我从阅读不同的txt文件时有点傻眼。

我已在下面发布了我的代码,以便您了解我想要做的事情。

我应该创建多个扫描仪并以这种方式实现它还是应该做其他事情?

编辑:感谢我的一些帮助,我设法让它发挥作用。这是修订后的工作代码。

<body>
    <%
    String id = request.getParameter("id");        
    String cid = request.getParameter("classID");
    String[] title = {"Name: ", "SSN: ", "Score: "};
    Scanner sc;        
    %>

    Find Your Current Score.
    <%-- Blank space here --%>
    <p></p>
    <%-- Input Forms (Text Field and Button) --%>
    <form action="ScoreFinder.jsp" method="get">
    Employee ID:
    <input type="text" name="id"/> Use SSN Format: xxx-xxx-xxxx
    <p></p>
    Class:
    <select name="classID">
    <option value="CMIS440">CMIS 440</option>
    <option value="CMIS445">CMIS 445</option>
    <option value="CMIS485">CMIS 485</option>
    </select>
    <input type="submit" value="Submit" />
    </form>

    <%
        if (id != null || cid != null) {
            String fileName = "/"+cid.replaceAll(" ", "") + ".txt";
            sc = new Scanner(new File(application.getRealPath(fileName)));
            while(sc.hasNext()) {                
            String line = sc.nextLine();
            String[] split = line.split("[#]");
            if (id.length() == 0) {
                out.println("Please enter an ID number.");
                break;
            }
            if (line.contains(id)) {
                out.println("Class: " + cid);
                %><br><%
                for (int i=0; i<split.length; i++){
                    out.println(title[i]);
                    out.println(split[i]);
                    %><br><%
                }
                break;
            }
            }
        }%>
</body>

1 个答案:

答案 0 :(得分:1)

假设您列出的JSP名称是ScoreFinder.jsp,并且您要将记录提交到同一个JSP。

您可以从参数id的值创建文本文件的名称,例如

<body>
    <%
    String id = request.getParameter("id");
    String fileName = "/"+id.replaceAll(" ", "")+".txt"; // avoiding null check of 'id' for simplicity
    Scanner sc = new Scanner(new File(application.getRealPath(fileName)));
    try {
        while(sc.hasNext()) {

    ........
    ........