【发布时间】:2015-09-15 19:11:59
【问题描述】:
我应该读取每行包含一个字符串的大文件。在 Java 中解析这种文件的最佳方法是什么?
目前我正在使用BufferedReader进行这样的解析:
public static List<String> readFile(String filename) {
List<String> input = new ArrayList<>();
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader(filename));
while ((sCurrentLine = br.readLine()) != null) {
input.add(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
return input;
}
所以我的问题是,哪种方法更好:像String 数组或char 数组一样保存?
换句话说,String 对象太多还是char 数组太多更好?
编辑: 我需要检查每行中的字符串是否为回文。
【问题讨论】:
-
读取文件的目的是什么?
-
"String 对象太多还是 char 数组更好" 定义 更好。
-
哪个更好?这完全取决于您要实现的目标
-
旁注:假设您至少使用 Java 7,我会使用 try-with-resources 创建您的
BufferedReader。 -
读取字符串的代码当然更干净。例如
List<String> lines = Files.readAllLines(file, Charset.defaultCharset());。除非您想将数据用作字符,否则我会使用字符串。但是,如果不了解更多有关您需要文件内容的内容,就不可能给出明确的答案。
标签: java arrays bufferedreader