[Resolvido] Android: java.io.FileNotFoundException, mas o arquivo existe sim

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 erro acontece quando tento isso:

InputStream arquivo = new FileInputStream (urlArquivo);

q q eu faço? Tenho q conseguir isso o mais rapiido possivel. Me ajudem porfavor!

[quote=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)

[/quote]

o que seria essa “/” antes do c:/ ?

Tipo posta como você esta carregando a urlArquivo

Mas como voce está tentando acessar C: ? Isso é padrão Windows.

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:

[code]

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;
}
}[/code]

Mas se voce quer algo que está no Assets, por que voce nao usa o AssetsManager e pega o que está lá?

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

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();[/code]


[code]String urlArquivo = "t.txt"; // t.txt esta dentro da psta assets, que fica dentro do seu projeto Android
InputStream arquivo = assetManager.open(urlArquivo);

vlw

É isso ai mesmo.

Voce pode pegar o AssetManager por qualquer Context.

ssó mais uma duvida… e se eu tiver que gravar um arquivo? nao posso usar o asset manager… entao como q eh?

eu tentei :

[code]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”);[/code]

e nenhum jeito funcionou :confused: