У меня есть текстовый файл, содержащий ссылку, имя, адрес, сумму, dateTo, dateFrom и обязательные столбцы в следующем формате:
"120030125 J Blog 23, SOME HOUSE, 259.44 21-OCT-2013 17-NOV-2013"
" SQUARE, STREET, LEICESTER,"
LE1 2BB
"120030318 R Mxx 37, WOOD CLOSE, BIRMINGHAM, 121.96 16-OCT-2013 17-NOV-2013 Y"
" STREET, NN18 8DF"
"120012174 JE xx 25, SOME HOUSE, QUEENS 259.44 21-OCT-2013 17-NOV-2013"
" SQUARE, STREET, LEICESTER,"
LE1 2BB
"100154992 DL x 23, SOME HOUSE, QUEENS 270.44 21-OCT-2013 17-NOV-2013 Y"
" SQUARE, STREET, LEICESTER,"
LE1 2BC
Меня интересуют только первые строки каждой строки, и я хочу извлечь данные из столбцов ссылки, имени, суммы, dateTo и dateFrom и записать их в файл CSV. В настоящее время мне удалось написать только следующий код, извлечь первые строки и избавиться от начальных и конечных двойных кавычек. Входной файл содержит пробелы, как и выходной файл.
public class ReadTxt {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("C:/Users/me/Desktop/input.txt"));
String pattern = "\"\\d\\d\\d\\d";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
int i;
ArrayList<String> list = new ArrayList<String>();
boolean a = true;
PrintWriter out = new PrintWriter(new PrintWriter("C:/Users/me/Desktop/Output.txt"), a);
try {
String line = br.readLine();
while (line != null) {
Matcher m = r.matcher(line);
if (m.find()) {
String temp;
temp = line.substring(1, line.length() - 1);
list.add(temp);
}
else {
// do nothing
}
line = br.readLine();
}
}
finally {
br.close();
}
for (i = 0; i < list.size(); i++) {
out.println(list.get(i));
}
out.flush();
out.close();
}
}
Приведенный выше код создаст текстовый файл со следующим выводом:
120030125 J Blog 23, SOME HOUSE, QUEENS 259.44 21-OCT-2013 17-NOV-2013
120030318 R Mxx 37, WOOD CLOSE, BIRMINGHAM, 121.96 16-OCT-2013 17-NOV-2013 Y
120012174 JE xx 25, SOME HOUSE, QUEENS 259.44 21-OCT-2013 17-NOV-2013
100154992 DL x 23, SOME HOUSE, QUEENS 259.44 21-OCT-2013 17-NOV-2013 Y
Мой ожидаемый результат выглядит следующим образом, но в файл csv:
120030125 J Blog 259.44 21-OCT-2013 17-NOV-2013
120030318 R Mxx 121.96 16-OCT-2013 17-NOV-2013
120012174 JE xx 259.44 21-OCT-2013 17-NOV-2013
100154992 DL x 259.44 21-OCT-2013 17-NOV-2013
Буду очень признателен за любые предложения, ссылки на учебные пособия или помощь, поскольку я не являюсь экспертом в Java. Я пытался найти учебники в Интернете, но не смог найти ни одного, который был бы полезен в моем случае.