С некоторой головной болью, пытающейся правильно проанализировать текстовый файл, это извлечение из базы данных mysql, но перед тем, как его можно будет снова вставить, необходимо немного изменить данные.
Моя программа берет файл .txt и анализирует его для создания файла .txt, который достаточно прост.
Проблема в том, что он неправильно разбивает файл. Файл выглядит следующим образом (среднее поле каждого выглядит странно, потому что я изменил его на случайные буквы, чтобы скрыть реальные данные):
(92,'xxxname',4013),(93,'sss-xxx',4047),(94,'xxx-sss',3841),(95,'ssss',2593),(96,'ssss-sss',2587),(97,'Bes-sss',2589),
Я хочу разделить его так, чтобы он выглядел как:
(92, 'xxxname',4013),
(93, 'sss-xxx', 4047),
(94, 'xxx-sss', 3841),
И так далее ...
Текущий код для разбора выглядит следующим образом:
public void parseSQL(File file) throws IOException {
Scanner scanner = new Scanner(file);
while (scanner.hasNext()) {
String line = scanner.next();
String[] lines = line.split(Pattern.quote("),"));
for (String aLine : lines) {
logLine(aLine);
}
}
}
public static void logLine(String message) throws IOException {
PrintWriter out = new PrintWriter(new FileWriter("output.txt", true),
true);
out.println(message);
out.close();
}
В настоящее время вывод, который я получаю, примерно на треке, но более разделен, чем должен быть, и, конечно, метод split удаляет ")", который не нужен.
Пример токового выхода:
*(1,'Vdddd
Cfffff',1989
(2,'Wdd',3710
(3,'Wfffff
Hffffff
Limited-TLC',3901
(4,'ffffffun88',2714
(5,'ffffff8',1135
(6,'gfgg8*
Немного поигрался и много раз искал здесь и в других местах, но из идей, любая помощь будет принята с благодарностью.