Limitação rms

Olá!
Seguinte, tenho uma aplicação rodando em celulares nokia e71 e está dando “RecordStoreFullException”. Essa aplicação manipula uma quantidade relativamente grande de dados. Li a documentação da nokia e lá diz que a única limitação para o sistema de arquivos rms é a quantidade de memória do dispositivo. Enfim, toda vez que eu importo um arquivo e ele ultrapassa cerca de 280 kb dá esse erro. Porém, eu ainda consigo importar outros arquivos. Daí imaginei que há uma limitação não na quantidade de dados do sistema de arquivos rms, como eu estava pensando, e sim uma limitação no tamanho máximo de um único arquivo rms. Porém, não tenho certeza se isso é verdade. O que eu gostaria de perguntar é se alguém já se deparou com esse problema e qual foi a maneira que encontrou para solucionar? E claro, se existe mesmo alguma limitação para o tamanho de um único arquivo usando rms?

t+

http://discussion.forum.nokia.com/forum/showthread.php?t=66451

Pq será que o pessoal que criou a especificação MIDP criou o método getSizeAvailable() ? Seriam videntes imaginando que este caso iria acontecer ?
Não…apenas fizeram algo que é para ser usado e que mesmo estando disponível, nem sempre se dá a devida atenção…
E olha que no javadoc tá lá…mas acho q a maioria não lê… :?

Obrigado pela resposta…
Mas a conclusão que chego após ler esse tópico do fórum é que o limite de tamanho de um arquivo existe e que varia de acordo com o dispositivo. O que pra mim é ruim, pois a minha aplicação deveria rodar em qualquer dispositivo sem problemas. Mas enfim, pelo jeito não há muito o que se fazer para resolver esse problema além de tentar reduzir ao máximo a quantidade de informações que devem ser guardadas no arquivo e, no caso de ultrapassar o limite, dividi-lo em dois ou mais arquivos. Ou alguém conhece alguma solução mais eficiente ou complementar a essa?

t+

Pq será que o pessoal que criou a especificação MIDP criou o método getSizeAvailable() ? Seriam videntes imaginando que este caso iria acontecer ?
Não…apenas fizeram algo que é para ser usado e que mesmo estando disponível, nem sempre se dá a devida atenção…
E olha que no javadoc tá lá…mas acho q a maioria não lê… :?[/quote]

Então, eu uso essa função. O que ela me retorna é quantidade de memória que o celular possui disponível, no caso cerca de 100mb. Ao usar a função getSize() em no arquivo que dá a exceção ele me retorna, também no caso, 280.400 bytes como tamanho do arquivo. Mas o fato é a exceção RecordStoreFullException ocorreu ao importar esse arquivo e quando ele estava com esse tamanho. Por isso que criei esse tópico, por não entender como que a função getSizeAvailable() acusava 100 mb de espaço e dava erro com um arquivo de 280 kb. E isso que estou tentando entender.

O que eu acho é que então pode ser um problema na implementação Java deste modelo.
Não faz sentido esta função retornar mais do que efetivamente se consegue gravar.
Talvez ela esteja retornando o espaço junto com o cartão SD, mas na verdade na hora de gravar, grava na própria memória e não no SD e por isto acabo usando um limite menor.
Se for isto,vc talvez tenha que deixar de usar o RMS e passar a usar o SD, criando uma classe para substituir o RMS, mas com os mesmos nomes, para preservar todo o resto da aplicação de alterações. Esta classe faria o acesso ao arquivo, controlando escritas,leituras,etc…