enrico.bo
sarkozy:
erro ao ler um arquivo no meu aplicativo android:
06-17 14:50:30.773: WARN/System.err(277): java.io.FileNotFoundException: /C:/Desenv/workspace/AplicativoP/assets/t.txt (No such file or directory)
o que seria essa “/” antes do c:/ ?
Tipo posta como você esta carregando a urlArquivo
Marky.Vasconcelos
Mas como voce está tentando acessar C: ? Isso é padrão Windows.
sarkozy
entao..
eu usei o caminho absoluto depois que tinha tentado so indicando a pasta "/assets/t.txt"...e nenhum dos dois jeitos funciona... tentei isso tb :
urlArquivo = ( (new File ("assets").getAbsolutePath())+"\\t.txt").replace("\\","/");
... mas tb n deu certo
aqui eh o jeito que acesso:
nomeUsuario = lerXml ("/assets/t.txt").getNomeUsuario();
public TransmissorPanico lerXml (String urlArquivo)
{
XStream xstream = new XStream();
try
{
InputStream arquivo = new FileInputStream (urlArquivo); // o erro acontece aqui
List list = (List) xstream.fromXML(arquivo);
TransmissorPanico transmissorPanico = (TransmissorPanico) list.get(0);
return transmissorPanico;
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
Marky.Vasconcelos
Mas se voce quer algo que está no Assets, por que voce nao usa o AssetsManager e pega o que está lá?
sarkozy
pq eu nao sei o q q eh isso!
eh uma outra forma de acesso?eh uma pasta? eu nao sei… iniciei no android a pouco tempo…
vc tem algum exemplo ai pra me passar kra?
vlw
sarkozy
bom... dei uma olhada no AssetManager e consegui resolver o problema
o AssetManager deve ser usado assim:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AssetManager assetManager;
assetManager = getAssets();
String urlArquivo = "t.txt"; // t.txt esta dentro da psta assets, que fica dentro do seu projeto Android
InputStream arquivo = assetManager.open(urlArquivo);
vlw
Marky.Vasconcelos
É isso ai mesmo.
Voce pode pegar o AssetManager por qualquer Context.
sarkozy
ssó mais uma duvida.. e se eu tiver que gravar um arquivo? nao posso usar o asset manager... entao como q eh?
eu tentei :
OutputStream arquivo = new FileOutputStream ("file:///android_asset/teste.txt");
OutputStream arquivo = new FileOutputStream ("asset/teste.txt");
OutputStream arquivo = new FileOutputStream ("/asset/teste.txt");
OutputStream arquivo = new FileOutputStream ("teste.txt");
e nenhum jeito funcionou :/