【问题标题】:check two different files in java and compare them [closed]检查java中的两个不同文件并比较它们[关闭]
【发布时间】:2015-06-22 17:30:06
【问题描述】:

我有两个文件。第一个是属性文件,第二个是内容文件

第一个文件

properties

{

"rowcount" : "3"

"delim" : "|"

}

第二个文件

a|b|c

d|e|f

g|h|i

我想读取两个文件并检查第二个文件是否遵循规则。(第一个文件的结构总是相似的)

【问题讨论】:

  • 您需要做的是告诉我们您到目前为止尝试过什么,以及为什么它没有奏效。

标签: java regex substring


【解决方案1】:

嗯,首先我认为第一个文件应该是properties.json,语法如下:

{
    properties: {
        rowcount: "3",
        delim: "|" 
    }
}

使用JSONParser,您可以读取 JSON 文件并将其映射到 Object

然后使用FileReader 可以处理第二个文件。对于验证部分,我认为 FileReader 中的正则表达式和 rowcount 可以轻松解决问题。

【讨论】:

    【解决方案2】:

    对于第一部分,只需从第一个文件中读取 rowcount 编号,然后与第二个文件中的 line count 进行比较。

    对于第二部分,读入delim,然后使用Scanner 或类似于read the second file using delim as your delimiter。如果您只想在每个分隔符之间插入一个字符,则在读取文件时对此进行测试,如果看到读取的字符不止一个,则抛出异常。

    来自示例链接:

    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Scanner;
    
    public class MainClass {
      public static void main(String args[]) throws IOException {
    
        char[] chars = new char[100]; //If you know how many you want to read
        //(if not, use an ArrayList or similar)
    
        FileReader fin = new FileReader("Test.txt");
        Scanner src = new Scanner(fin);
    
        // Set delimiters to newline and pipe ("|")
        //Use newline character OR (bitwise OR is "|") pipe "|" character
        //since pipe is also OR (thus a meta character), you must escape it (double backslash)
        src.useDelimiter(src.useDelimiter(System.getProperty("line.separator")+"|\\|");
        // Read chars
        for(int i = 0; src.hasNext(); i++) {
            String temp = src.next();
            if(temp.length != 1)
                System.out.println("Error, non char"); //Deal with as you see fit
            chars[i] = temp.charAt(0); //Get first (and only) character of temp
        }
        fin.close();
        //At this point, chars should hold all your data
      }
    }
    

    【讨论】:

    • IlGala @ 实际上第一个文件是在 mongodb 中创建的,并被转换为文本文件并提供给我。所以基本上我有两个文本文件。就像我提到的.
    • River @能否请您提供第二部分的代码 sn-p。
    • @avinash 我已经这样做了。也经过编译和测试
    • @IIGala 谢谢。它是一个 JSON 文件。所以我可以轻松解决它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2014-12-15
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    相关资源
    最近更新 更多