我的要求是我们从开发人员那里获取.dat文件,我们需要验证.dat文件和数据库表结果是否相同
.dat示例文件如下
3009706 ~~ F18130000010 ~~ R60629572 ~~ 0 ~~ 936 ~~ 1 ~~ PA4 ~~ PA3 ~~~~~~~~~~~~~ Y ~~ 3009712 ~~ F18130000020 ~~ R50160248 ~~ 0 ~~ 430 ~~ 1 ~~ PA4 ~~ PA3 ~~~~~~~~~~~~~ Y ~~ 3009723 ~~ 8062229458PM ~~ R99999999 ~~ 0 ~~ 439 ~~ 1 ~~ PA4 ~~ PA3 ~~~~~~~~~~~~~ Y ~~ 3009728 ~~ 8028190839PM ~~ R57884273 ~~ 0 ~~ 936 ~~ 1 ~~ PA4 ~~ PA3 ~~~~~~~~~~~~~ Y ~~
样本数据库表
我需要从.dat文件中读取每一行,使用第一个值为主键的查询数据库,并将db结果与.dat文件结果进行比较。每列用~~符号分隔。同样,我需要将所有行与数据库结果进行比较。
就像我一样,我有很多文件。因此,一个表一个.dat文件。手动比较需要付出很多努力。需要自动化这个过程 我在想的步骤是
请提供任何以Java开头的想法或代码
预先感谢
答案 0 :(得分:1)
通过循环读取每个字符串,并用~~分隔每一行,然后保存到列表或数组中,并通过Index明智地与db比较。
// Read File code line by line
File file = new File("xyz.dat");
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
List<String[]> list = new ArrayList<>();
String line;
while((line = br.readLine())!=null) {
String[] str = line.split("~~");
list.add(str);
}
// Traverse Code from List and Array
for(String arr[] : list) {
if(arr[1] == "") // write code as per your usage
}
在遍历列表之后,并使用String []索引与您的数据库进行比较。