Tratar arquivo para inserir no banco

Fala galera estou programando, então não vim para copiar código srsrsrs.
Mas fritei meu tico e teco e estou sem ideias no momento, e vim compartilhar e pedir um help.

package Carga;

import java.io.*;
import java.sql.*;


public class CopyPendentes extends Conexao {

	public static void main(String[] args) throws IOException, Exception  {
		
		//abre conexão
		Connection conn = ObterConexao();
		
		
		//lê o arquivo e coloca em buffer de memoria
		
		FileReader arq = new FileReader ("C:/Users/F8061431/Desktop/Bases/Bases Pendentes/Chamados_Pendentes1.txt");
		BufferedReader sr = new BufferedReader (arq);
		String[] adados = new String [54];
		String dados = null;
		
		//retira a linha com o nome das colunas
		sr.readLine();
		
		// inicia o loop com tratamento retirando as " e tratando quebra de linha.
		while ((dados = sr.readLine().replaceAll("\"", ""))!= null) {
			adados = dados.replaceAll("\r\n", "").split(",");
		
			//insere os dados no banco 
		
			PreparedStatement query1 = conn.prepareStatement("INSERT INTO BASE_PENDENTES_TEMP2 VALUES ('"+adados[0]+"','"+adados[1]
			+"','"+adados[2]+"','"+adados[3]+"','"+adados[4]+"','"+adados[5]+"','"+adados[6]+"','"+adados[7]+"','"+adados[8]+"','"
			+adados[9]+"','"+adados[10]+"','"+adados[11]+"','"+adados[12]+"','"+adados[13]+"','"+adados[14]+"','"+adados[15]+"','"
			+adados[16]+"','"+adados[17]+"','"+adados[18]+"','"+adados[19]+"','"+adados[20]+"','"+adados[21]+"','"+adados[22]+"','"
			+adados[23]+"','"+adados[24]+"','"+adados[25]+"','"+adados[26]+"','"+adados[27]+"','"+adados[28]+"','"+adados[29].replaceAll("\n", "")+"','"
			+adados[30]+"','"+adados[31]+"','"+adados[32]+"','"+adados[33]+"','"+adados[34]+"','"+adados[35]+"','"+adados[36]+"','"
			+adados[37]+"','"+adados[38]+"','"+adados[39]+"','"+adados[40]+"','"+adados[41]+"','"+adados[42]+"','"+adados[43]+"','"
			+adados[44]+"','"+adados[45]+"','"+adados[46]+"','"+adados[47]+"','"+adados[48]+"','"+adados[49]+"','"+adados[50]+"','"
			+adados[51]+"','"+adados[52]+"','"+adados[53]+"',TO_CHAR(CURRENT_DATE,'DD/MM/YYYY'))");
			
			query1.execute();
			
			query1.close();
			
		}
		
		conn.close();
		sr.close();

	}

}

Não posso mostrar o arquivo mas ele vem +ou- dessa forma
“titulo das colunas”,“titulo das colunas”,“titulo das colunas”,“titulo das colunas”,“titulo das colunas”
“65484787”,2014-12-16 23:54:00,“tecoteco”,“qwewe”,“qwewqefe”,“weerdqwd”
“65484787”,2014-12-16 23:54:00,“tecoteco”,“qwewe”,“qwewqefe”,“weerdqwd”

Porem em algumas linhas tenho a ocorrência do CRLF acontecendo no meio da linha sempre em uma mesma coluna.

“65484787”,2014-12-16 23:54:00,“tecoteco”,"qwewe
",“qwewqefe”,“weerdqwd”

Cheguei a conclusão que meu tratamento para quebra de linha não funciona pois o buffer está sendo lido linha a linha. Então a quebra deveria ser tratada antes mas poderia retirar as quebras corretas ou fazer a inserção de dados direto da leitura do arquivo para tentar aumentar o desempenho e tratar o arquivo.

Mas tbm ocorre este erro Exception in thread “main” java.lang.NullPointerException.

Obrigado a todos que puderem ajudar e desculpe o longo post.

Olá HattoriHanzou, use tokenizer com a classe Scanner:

[code]List listaDeDados = new ArrayList<>();
Scanner scanner = new Scanner(valores);

    scanner.useDelimiter("\",\"|\"");

    while (scanner.hasNext()) {
        listaDeDados.add(scanner.next())
    }[/code]

Tokenizer é o conceito de poder dividir a String em partes através de um delimitador, é o mais adequado para o seu caso.

E depois use a lista pra inserir no banco.

[quote=rafadelnero]Olá HattoriHanzou, use tokenizer com a classe Scanner:

[code]List listaDeDados = new ArrayList<>();
Scanner scanner = new Scanner(valores);

    scanner.useDelimiter("\",\"|\"");

    while (scanner.hasNext()) {
        listaDeDados.add(scanner.next())
    }[/code]

Tokenizer é o conceito de poder dividir a String em partes através de um delimitador, é o mais adequado para o seu caso.

E depois use a lista pra inserir no banco.[/quote]

Obrigado Rafael, vou ler sobre o tokenizer. Ainda não entendi bem o conceito dele. Algum conselho que possa me passar para entende-lo melhor. Novamente obrigado!

A melhor forma de entender é testar o código que eu te passei! Tokenizer basicamente é dividir uma String em partes a partir de um delimitador, nesse exemplo que eu te passei, você vai precisar ler seu arquivo inteiro e jogar em uma variável String, depois você usa o código que eu escrevi.