【发布时间】:2017-02-08 14:06:42
【问题描述】:
我有一个文件路径的文本文件,并且需要这些文件路径的数组。但是,某些文件路径被“注释”掉了,行首带有感叹号,我不想将这些行包含在数组中。
目前我使用loadStrings()将整个文本文件放在一个数组中,然后遍历整个数组并只放置不以“!”开头的元素在StringList 中,在将StringList 转换回数组之前,从而获得一个仅包含“未注释”文件路径的数组,没有多余的空间。
这似乎非常低效和麻烦,那么有谁知道实现这一目标的更好方法吗?有没有办法忽略以“!”开头的行在原始读取阶段,或者失败,一种从第一个数组中轻松删除这些元素并相应调整该数组大小的方法?
当前代码:
String file = "File_Paths.txt";
String[] filePaths_raw = loadStrings(file);
StringList filePaths = new StringList();
for (int i = 0; i < filePaths_raw.length; i++) {
if (filePaths_raw[i].charAt(0) != 33) {
filePaths.append(filePaths_raw[i]);
}
}
filePathsArray = new String[filePaths.size()];
for (int i = 0; i < filePathsArray.length; i++) {
filePathsArray[i] = filePaths.get(i);
}
【问题讨论】:
-
不具体,因为处理
loadStrings()函数一次解析整个文件我相信 - 我可以像在 Java 中那样逐行读取文件吗? -
是的,使用BufferedReader。
标签: arrays arraylist processing