如何通过for循环索引值

时间:2015-07-25 05:48:00

标签: java android servlets

我试图通过servlets(服务器代码)在android中通过多部分上传文件。所以我可以这样迭代循环。

for (Part part : request.getParts()) {
//uploading current part.. working..
} 

但我想像下面那样进行迭代,

  for (int i = 0; i < request.getParts().size(); i++) {
    //request.getPart(i); not working..
   //request.getPart(i+1); not working..
    }

原因是每次迭代都需要当前部分和下一部分。是否可以像上面那样或任何其他方式来做。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

HttpServletRequest.getParts()返回CollectionLists不允许基于索引的访问。

您可以先将所有部分复制到ArrayList,然后循环显示该列表:

ArrayList<Parts> parts = new ArrayList<>(request.getParts());
for (int i=0; i<parts.size()-1; i+=2) {
    // parts.get(i);
    // parts.get(i+1);
}

答案 1 :(得分:0)

也许这对您有所帮助... 我为每个循环都做了一个。 应用示例:

for (Part part : request.getParts()) {
    // Your code. For example:
    fileName = getFileName(part);
    part.write(fileName);
}

private String getFileName(Part part) {
    String contentDisp = part.getHeader("content-disposition");
    String[] tokens = contentDisp.split(";");
    for (String token : tokens) {
        if (token.trim().startsWith("filename")) {
            return token.substring(token.indexOf("=") + 2, token.length() - 1);
        }
    }
    return "";
}

希望对您有帮助!