Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro ao gravar dados de leitura de um arquivo xml

Olá pessoal,

Verifiquei todos os vídeos e fiz o curso completo, porém durante um teste com um algoritmo onde eu faço a leitura de um arquivo xml e tento jogar ele dentro do meu sistema, tá dando erro no momento em que eu tento validar ele no xml.available().

final InputStreamReader in = new InputStreamReader(xmlImputStream);

            final BufferedReader buff = new BufferedReader(in);

            String nextLine;
            final StringBuilder livroEletronico= new StringBuilder();

            while (true) {
                nextLine = buff.readLine();
                if (nextLine != null) {
                    livroEletronico.append(nextLine);
                } else {
                    break;
                }
            }

Debuggando no display, na linha nextLine = buff.readLine(), ele fica com int 0.

O metodo utilizado foi xmlImnputStream.avaiable().

Se ele zera ja nesse primeiro metodo, no fim o sistema acaba não inserindo os dados no sistema que deveria acontecer no proximo metodo.

Após esse metodo, ele entra em um outro metodo que possui o trecho do metodo baixo, que também vem zerado ((int) 0) se debugar e usar xmlInputStream.avaiable()

Document process = null; 
        final DocumentBuilderFactory docBuilderFactory = 
DocumentBuilderFactory.newInstance();

        try {
            final DocumentBuilder docBuilder = 
docBuilderFactory.newDocumentBuilder();
            if(xml.available() > 0) {

Alguem pode me ajudar?

Obrigado

4 respostas

Ele parece que só zera depois do readline... Agora não vai rolar você usar o mesmo buffer em outro método, tem que carregar de novo...

Olá Alberto,

Não entendi.

Como que faz?

E se eu buscar uma biblioteca de xml?

solução!

Opa, se você quiser ler o mesmo arquivo, tem que carregar de novo :/. Quando você usa uma lib, geralmente, ela traz tudo para memória e mantém a estrutura de acesso para você. Tipo um xstream ou jackson da vida.

Valeu