Чтение конфигурационного файла с массивами в Java - PullRequest
1 голос
/ 20 июня 2011

Я создал Java-приложение, которое манипулирует несколькими матрицами, которые оно получает в качестве входных данных, а затем выводит некоторый текст. В настоящее время матрицы жестко заданы в моем приложении (для тестирования), но для новой матрицы перекомпиляция довольно глупа.

Поэтому я ищу формат файла конфигурации, который подходит для ввода матриц.

Я знаю, что могу легко читать ini-файлы ( Какой самый простой способ проанализировать INI-файл в Java? ), но затем анализировать что-то вроде [[1, 2, 3], [4 , 5, 6]] для матрицы, вероятно, потребуются раздражающие манипуляции со строками.

Кто-нибудь знает хороший метод для чтения в этих матрицах?

Ответы [ 3 ]

3 голосов
/ 20 июня 2011

Вы можете использовать JSON в качестве формата обмена данными.Взгляните на JSON в Java .

3 голосов
/ 20 июня 2011

как насчет файлов CSV?

Ваш ввод может выглядеть примерно так:

1;2;3
4;5;6

Есть также несколько уже встроенных парсеров CSV ... вроде http://commons.apache.org/sandbox/csv/

1 голос
/ 20 июня 2011

Я второй на CSV-файлах.Однако также может быть удобно использовать файлы свойств, одна строка которых представляет одну матрицу.Примерно так:

property.test="A,B,C;A1,B1,C1;A2,B2,C2";

И затем использование java.util.Properties для чтения файла.

Синтаксический анализ: хитрость здесь заключается в выборе разделителей, они не должны присутствовать в записяхсамих себя.

String str = "A,B,C;A1,B1,C1;A2,B2,C2";
String[] rows = str.split(";");
if(rows != null && rows.length > 0){
   String[][] result = new String[rows.length][];
   for(int row = 0; row < rows.length; row++){
       result[row] = rows[row].split(",");      
   }
 }
...