来自带有逗号操作的文本文件的Java Bufferedreader数据

时间:2015-03-31 21:32:41

标签: java io bufferedreader

我是Java编程的新手,我挑战自己做这个,但是当谈到缓冲读者和编写者时,我迷路了。我有两个文本文件,我从csv文件解析出来,我想比较这个文本文件之间的数据。

这就是文本文件中的内容。

file1.text
sample1,true,online


file2.text
sample1,true,test,check,OL

expected output :
valid

file3.text
online,OL
offline,OF
idle, IL

我想比较file2中的online1和file2中的OL。但正如你可以看到它用逗号分隔。如果file1中的联机词变为脱机或空闲,则输出应无效且与file2上的相同。在此先感谢你们!任何帮助将不胜感激。干杯

1 个答案:

答案 0 :(得分:0)

这里有一些要点。

File3看起来很适合将其提取到Map<K, V>,只需将第一个值作为键,将第二个值作为值。

按行读取file1和file2并用逗号分隔。像:

try (BufferedReader br = new BufferedReader(new FileReader(file))) {
    String line;
    while ((line = br.readLine()) != null) {
       String[] values = line.split(",");
       // extract values by indexes and use created map from file3 to validate the input.
    }
}

验证逻辑:

Map<String, String> map; // Assuming you populate it with file3 content and it contains online->OL, offline->OF etc. ;
void validate(String valueFromFile1, String valueFromFile2) {
    if (map.containsKey(valueFromFile1) && map.get(valueFromFile1).equals(valueFromFile2)) {
        // Valid;
    } else {
        // invalid
    }