Java File []或List <file>还是其他?

时间:2018-11-27 02:41:44

标签: java arrays list

public boolean importData(TransferSupport ts) {
  try {
    String dir = ts.getTransferable().getTransferData(DataFlavor.javaFileListFlavor).toString();
    dir = dir.substring(1, dir.length()- 1);
    System.out.println(dir);

    DecimalFormat df = new DecimalFormat("#.#");
    df.setRoundingMode(RoundingMode.CEILING);
    //parsing directory names and converting them into file array
    int lastComma = 0;
    for(int i = 2; i < dir.length(); i++) {
        //System.out.println(dir.substring(i-2,i));
        if(dir.substring(i-2,i).equals(", ")) {
            File file = new File(dir.substring(lastComma,i-2));
            double num = file.length();
            System.out.println(df.format((num/1024)/1024)+"MB");
            lastComma = i; 
        }

    }
}

我正在实现一种通过目录路径解析来获取文件列表的方法。字符串目录将包含文件目录。这取决于用户将多少文件拖放到程序上。由于我将文件信息存储为表格格式,因此必须将其存储为数组格式或其他数据结构。有什么建议吗?

最重要的问题是,我应该使用File []数组来实现它吗?或清单?我知道使用File []数组实现它可以让我计算用户拖放的文件数。

2 个答案:

答案 0 :(得分:1)

List通常更灵活。但是,在这种情况下,您可以使用以下代码替换该凌乱的字符串拆分代码:

 String[] files = dir.split(", ");

还处理了使用List的原因之一。而且如果您仍然想使用List

 List<String> files = Arrays.asList(dir.split(", "));

请注意,这是List<String>而不是List<File>,但这没关系。

答案 1 :(得分:0)

列表更灵活,数组更受约束。如果您没有其他特殊原因,则使用列表为首选。