2014-09-07 3 views
0

У меня есть файл записи размером 10 000 (txt), который необходимо загрузить в базу данных MySQL. Я планирую написать программу Java для чтения файла и записи в БД.Чтение файла в java с несколькими полями

О файле:

Файл имеет 30 полей различного типа полей, Ex: - String, Int, двойной, символ ..

В настоящее время я планирую прочитать файл в Строковый массив и извлеките данные. Пример кода приведен ниже .. (String предполагается запись из строки)

public class Read { 
    public static void main(String[] args){ 
     String s ="Bob&&01-01-1980&&20&&CA"; 
     String[] a1= s.split("&&"); 
     System.out.println(a1[0]); 
     String name = a1[0]; 
     String dob = a1[1]; 
     String age = a1[2]; 
     String state = a1[3]; 
     System.out.println(name + " " + dob + " " + age +" " + state); 
    } 
} 

Есть ли лучший способ для извлечения данных из файла с 30-40 полей?

+0

У ФАЙЛА нет никаких «полей», здесь вы смешиваете немало вещей. – specializt

+1

Вы можете попробовать создать POJO и строитель (или фабрику) и создать «Список» ваших объектов Java. –

+0

@specializt: У файла, который у меня есть, есть разделитель '&&' – user1050619

ответ

0

Ваш подход выглядит хорошо для меня. С 10k строк вам, вероятно, нужно сделать COMMIT каждые сто строк или около того. Если вы импортируете в таблицу MyISAM, вам не нужно об этом беспокоиться.

Если бы я выполнял этот проект, я бы использовал MS Excel (который, как мне бывает, удобен), или программу электронной таблицы Open Office для импорта текстового файла в электронную таблицу. Затем я проверил таблицу, чтобы убедиться, что все было чисто, а затем экспортировать ее как CSV-файл. Наконец, я бы использовал служебную программу mysqlimport для загрузки CSV-файла в MySQL. Эта процедура, вероятно, будет обрабатывать различные крайние края синтаксиса более надежно, чем на заказная программа Java.

С другой стороны, если это должно быть недельное задание загрузки, программа на Java была бы способ пойти.

(Конечно & & является законным разделителем mysqlimport называет его fields_terminated_by.).

0

Поскольку вы сказали, ваш файл имеет разделитель, было бы проще использовать MySQL, построенный в методе, чтобы импортировать эти данные:

http://dev.mysql.com/doc/refman/5.0/en/load-data.html

просто использовать поля заканчиваются '& &'

Thi s также будет использовать только одно соединение с db, поэтому он будет потреблять меньше оперативной памяти и быть быстрее, чем использовать Java-код.

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