从文本文件导入Java问题

时间:2009-11-03 20:23:50

标签: java text arraylist java.util.scanner

我决定在Java中创建一个货币转换器,并将其转换为从文本文件中提取转换值(以便于编辑,因为这些值会不断变化)。我确实通过使用Scanner类并将所有值放入ArrayList来实现这一目的。

现在我想知道是否有办法在文本文件中添加注释以供用户阅读,扫描仪将忽略该注释。 “//”似乎不起作用。

由于

4 个答案:

答案 0 :(得分:11)

最好的方法是使用java.io.BufferedReader逐行阅读文件,然后使用String#startsWith()在每行搜索评论,其中搜索"//"

但您是否考虑过使用属性文件并使用java.util.Properties API进行管理?这样您就可以从现成的规范和API中受益,并且可以使用#作为注释行的开头。另请参阅tutorial at sun.com

答案 1 :(得分:1)

扫描程序不会忽略任何内容,您必须在阅读后删除数据中的注释。

答案 2 :(得分:0)

是的,而((currentLine = bufferedReader.readLine())!= null)可能是最简单的,然后执行必要的测试。 currentLine.split(regex)对于使用分隔符将行转换为值数组也非常方便。

答案 3 :(得分:0)

使用Java nio,您可以执行以下操作。假设您要忽略以“ //”开头并以ArrayList结尾的行。

List<String> dataList;
Path path = FileSystems.getDefault().getPath(".", "data.txt");
dataList = Files.lines(path)
             .filter(line -> !(line.startsWith("//")))
             .collect(Collectors.toCollection(ArrayList::new));