Problema ao gravar no sistemas de arquivos do celular

3 respostas
rafaelzulin

Olá… estou com um problema aqui. Estou fazendo um sistema para celular que faz orçamentos. Bom, para enviar os orçamentos feitos para o banco de dados eu gravo os registros em um arquivo .txt já em sql, e depois ele é enviado ao banco. Enfim, para gerar esse arquivo eu uso um loop que fica gravando um “insert” por vez no arquivo. Mas o celular, em toda interação do loop, pergunta “se eu realmente desejo gravar no sistemas de arquivos de celular”. Uma solução que pensei, foi a de concatenar tudo numa String ou StringBuffer e enviar de uma só vez. Porém essa solução vai dar um pouco mais de trabalho :cry: e também pode ocorrer de não haver memória suficiente para essa String se o Orçamento for muito grande. O que eu queria saber é se tem alum jeito de fazer isso sem que essa pergunta apareça, ou que apareça somente uma vez?

t+

3 Respostas

fernandocasemiro

Rafael,
Olha, pelo que eu já li pelos foruns tem como sim, mas tem seu custo…
É preciso assinar seu Midlet… Qnt custa eu nao sei te falar…
mas da um procurada nesse sentido…

http://www.guj.com.br/posts/list/62474.java#328402

nesse tópico os caras estao discutindo exatamente isso…

Agora, se vc puder me ajudar, eu nao estou conseguindo nem Permitir q apareça os arquivos existentes no celular, nem gravar…
como vc fez para conseguir criar um arquivo dentro do celular???

rafaelzulin
Olá, vc tem que importar duas classes:
import javax.microedition.io.Connector;
import javax.microedition.io.file.*;
Depois usa um código parecido com esse:
public cExportador(){
        try {
            String uri = System.getProperty("fileconn.dir.photos") + "export.txt";
            fc = (FileConnection) Connector.open(uri, Connector.READ_WRITE);
            anterior = new StringBuffer(""); //le o conteudo anterior do arquivo para nao perde-lo
            if (! fc.exists())
                fc.create();
            else{
                in = new InputStreamReader(fc.openInputStream());

                int intCarac = in.read();
                while (intCarac != -1){ //Atribui o arquivo anterior ao StringBuffer anterior;
                    char c = (char) intCarac;
                    anterior.append(c);
                    intCarac = in.read();
                }
                in.close();
            }
                        
            out = fc.openOutputStream();
            saida = new PrintStream(out);
            
            saida.println(anterior.toString()); //gera um stream de saída
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch(SecurityException e){
            e.printStackTrace();
        }
    }

Também dá uma lida nesse documento que ajuda:
http://www.forum.nokia.com/info/sw.nokia.com/id/82644083-2f4b-4775-a292-c02d6bf5be57/Introduction_To_The_FileConnection_API_v1_1.zip.html

t+

fernandocasemiro

Rafael, mtissimo obrigado… parece q assim eu vou coneguir alguma coisa…
Vlw mesmo…

Criado 21 de fevereiro de 2008
Ultima resposta 21 de fev. de 2008
Respostas 3
Participantes 2