用jsp解析文本文件名

时间:2012-11-21 04:00:24

标签: java jsp

我需要获取文件的名称,该名称实际上以45- 某事 .log开头。我可以抓45,但不是其余的,因为某事由随机数组成。此外,此类文件已在服务器上,我需要事先查找。

我已尝试过以下内容:

       <%
        String line ="";

        String file = "/tmp/smsrouter/" + pageContext.getAttribute("cid");
        BufferedReader br = new BufferedReader(new FileReader(file));
        int count = 0;
        int lineNumber = 0;
        while((line=br.readLine())!=null)
        {
            String[] parts = line.split("\\,");

            lineNumber++;
            if(parts[3].equals("0") && count < lineNumber)
            {
                    count++;
            }
       }
       count = (count/lineNumber)*100;
       br.close();

      %>
显然,它不会得到任何预期的结果。那我该怎么办?

1 个答案:

答案 0 :(得分:1)

为什么不使用iterator / tmp / smsrouter / dir和匹配文件名?

    File[] files = new File("/tmp/smsrouter/").listFiles();

    for (File file : files) {
        if (file.isDirectory()||!file.getName().startsWith("45-")) {
            continue;
        } else {
            BufferedReader br = new BufferedReader(new FileReader(file));
            int count = 0;
            int lineNumber = 0;
            while((line=br.readLine())!=null)
            {
                String[] parts = line.split("\\,");

                lineNumber++;
                if(parts[3].equals("0") && count < lineNumber)
                {
                    count++;
                }
            }
            count = (count/lineNumber)*100;
            br.close();
        }
    }

可能你想要将计数逻辑提取到另一种方法。希望这有帮助。

在实际生产系统中不建议这样做,因为调用请求超时的时间可能很长。