2015-06-22 1 views
-1

У меня есть два файла .Первый файла свойств и второй файл содержимогопроверка двух различных файлов в Java и сравнить их

первый файл

properties 

{ 

"rowcount" : "3" 

"delim" : "|" 

} 

второй файл

a|b|c 

d|e|f 

g|h|i 

Я хочу прочитать и файл и проверить, соответствует ли второй файл правилу (структура из первого файла всегда будут похожи)

+1

Что вам нужно сделать, это сказать нам, что вы пробовали до сих пор, и почему это не сработало. – PaulJWilliams

ответ

1

Ну, прежде всего, я думаю, что первый файл должен быть properties.json с этим синтаксисом:

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

с JSONParser вы можете прочитать файл в формате JSON и отобразить его в Object.

Затем с FileReader вы можете иметь дело со вторым файлом. Для части проверки я считаю, что регулярное выражение и rowcount из FileReader могут легко решить проблему.

1

Для первой части просто прочитайте номер 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 
    } 
} 
+1

** IlGala ** @ на самом деле первый файл создан в mongodb и преобразован в текстовый файл и предоставляется мне .so в основном у меня есть два текстовых файла. Как я уже упомянул. – Avinash

+0

** Река ** @ вы можете предоставить фрагмент кода для второй части. – Avinash

+0

@avinash Я сделал это. Скомпилировано и протестировано также – River

Смежные вопросы