我是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上的相同。在此先感谢你们!任何帮助将不胜感激。干杯
答案 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
}