Boa tarde pessoal,
Sou iniciante em J2ME, mas preciso desenvolver nesta linguagem uma aplicação que leia um txt do cartão de memória e mostre seu conteúdo na tela para o usuário.
Após muitas pesquisas (até aqui mesmo no fórum), fiz o código postado abaixo, mas aparentemente ele está incorreto, pois ao testar no compilador a validação sempre cai em “Arquivo não encontrado!”, mas eu ja criei o arquivo em: C:\Documents and Settings\Usuario\javame-sdk\3.0\work\0\appdb\filesystem
No palm também não funciona, ao executar este aplicativo nele, recebo a mensagem de erro: “Throwable: javax.microedition.io.file.FileConnection”
O que estou fazendo de errado??
Agradeço muito a quem se dispor a ajudar!
[code] public vfm() throws IOException
{
cmdsair = new Command("Sair", Command.EXIT, 1);
form = new List("TXT", List.IMPLICIT);
form.addCommand(cmdsair);
form.setCommandListener(this);
new Thread()
{
public void run()
{
listarTudo();
}
}.start();
}
private void listarTudo()
{
String nomeArquivo = "dados.txt";
try
{
FileConnection fc = (FileConnection) Connector.open("file:///SDCard/" + nomeArquivo);
form.deleteAll();
if (!fc.exists())
{
form.append("Arquivo não encontrado!",null);
}
else
{
InputStream is = fc.openInputStream();
byte b[] = new byte[1024];
int length = is.read(b, 0, 1024);
form.append("Conteúdo do arquivo "+nomeArquivo + ": \n"+ new String(b, 0, length),null);
}
fc.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}[/code]
Passa esse diretório como argumento deste método.
public void varredura(File dir) throws IOException {
if (dir.isDirectory()) {
String list[] = dir.list();
if(list.length == 0){
throw new Error("Não existem arquivos nesse diretório!");
}
for(int i = 0; i < list.length; i++){
if(list[i].endsWith("TXT") || list[i].endsWith("txt")){
arquivo = dir + "\\" + list[i];
String linha;
BufferedReader leitor = new BufferedReader(new FileReader(arquivo));
}
} else {
System.out.println("Não é um diretório");
}
}
Ei, vocês… podem dar uma lida nesse tópico aqui?
http://www.guj.com.br/posts/list/50115.java
E, se possível, editar os posts aí em cima? A comunidade agradece. 
[quote=Rafa Ferrari]Passa esse diretório como argumento deste método.
public void varredura(File dir) throws IOException {
if (dir.isDirectory()) {
String list[] = dir.list();
if(list.length == 0){
throw new Error("Não existem arquivos nesse diretório!");
}
for(int i = 0; i < list.length; i++){
if(list[i].endsWith("TXT") || list[i].endsWith("txt")){
arquivo = dir + "\\" + list[i];
String linha;
BufferedReader leitor = new BufferedReader(new FileReader(arquivo));
}
} else {
System.out.println("Não é um diretório");
}
}
[/quote]
Por favor Rafa Ferrari você pode me explicar o que você quis dizer, é que eu não entendi.
Muito obrigado!
Dentro de appdb/filesystem crie um diretório chamado SDCard e mova o teu arquivo pra dentro dele. Tente executar de novo.
Falou.
[quote=wagnerfrancisco]Dentro de appdb/filesystem crie um diretório chamado SDCard e mova o teu arquivo pra dentro dele. Tente executar de novo.
Falou.[/quote]
Tentei fazer isso mas não funcionou.
Eu tenho que mudar algo no fonte também?
Detalhe, aparece a seguinte mensagem antes de cair no if (mas ja aparecia antes)
‘projeto’ wants to read from the local file system.
Is it to read your files?
o que eu faço para resolver?
Bom dia pessoal…
e aí, alguem sabe me ajudar??
eu ainda não consegui…
Por favor, quem souber poste aqui…
Obrigado!
Fico aguardando
será que o problema não é no fonte??
eu penso que possa ser alguma configuração que está faltando.
Eu utilizo a IDE NetBeans 6.7.1 com o Java SE Development Kit 6u13
Alguém sabe se existe alguma incopatibilidade?? Ou alguma configuração para esse tipo de funcionalidade?
Agradeço a quem se dispor a ajudar!
Continuo aguardando
Pessoal, consegui resolver parte do meu problema!
Eu alterei as seguintes linhas:
String nomeArquivo = "file:///root1/dados.txt";
try
{
FileConnection fc = (FileConnection)Connector.open(url, Connector.READ_WRITE);
e descobri que este é o diretório correto:
C:\Documents and Settings\Usuario\j2mewtk\2.5.2\appdb\DefaultColorPhone\filesystem\root1
Bom, agora funcionou corretamente no emulador, mas ainda continua não funcionando no Palm
ele continua dando erro na API
O que será que é?
Fico no aguardo de ajuda!!
Obrigado
Consegui resolver meu problema!!!
Segue descrição caso alguém passe por isso:
O erro acontecia por não ter instalado no palm uma JVM compatível com a API JSR 75
Foi só baixar e instalar o JVM 5.7.2 e o aplicativo funcionou normalmente.
Muito obrigado a todos que tentaram me ajudar!!